
/* DWARF original prototype: bool return_or_queue(Workqueue * this, Task * t, bool is_blocker, Task
   * * pret) */

bool __thiscall
gold::Workqueue::return_or_queue(Workqueue *this,Task *t,bool is_blocker,Task **pret)

{
  long lVar1;
  undefined3 extraout_var;
  undefined3 extraout_var_00;
  Task *pTVar2;
  Condvar_impl *pCVar3;
  Task *pTVar4;
  bool bVar8;
  undefined1 uVar9;
  Lock_impl *pLVar5;
  _func_int_varargs **pp_Var6;
  int iVar7;
  size_type sVar10;
  int iVar11;
  size_type *psVar12;
  size_type *psVar13;
  size_type *psVar14;
  Workqueue *pWVar15;
  undefined4 *puVar16;
  undefined4 *puVar17;
  Workqueue *pWVar18;
  Workqueue *this_00;
  Task *pTVar19;
  long *plVar20;
  _Alloc_hider _Var21;
  int iVar22;
  pointer pcVar23;
  undefined3 in_register_00000018;
  int *piVar24;
  pointer pcVar25;
  size_type *psVar26;
  char *pcVar27;
  int *piVar28;
  undefined4 uVar29;
  _func_int_varargs *p_Var30;
  _func_int_varargs *p_Var31;
  undefined *puVar32;
  code *pcVar33;
  code *pcVar34;
  _func_int_varargs *p_Var35;
  Timer TStack_168;
  _Alloc_hider _Stack_138;
  size_type sStack_134;
  size_type asStack_130 [4];
  undefined4 auStack_120 [5];
  TimeStats TStack_10c;
  code *pcStack_100;
  long *plStack_fc;
  int iStack_f8;
  _func_int_varargs *p_Stack_f4;
  pointer pcStack_f0;
  int iStack_ec;
  size_type *psStack_e8;
  size_type *psStack_e4;
  size_type *psStack_e0;
  size_type *psStack_dc;
  Workqueue *pWStack_d8;
  undefined4 *puStack_d4;
  undefined4 uStack_d0;
  int *piStack_cc;
  int iStack_c8;
  Workqueue *pWStack_c4;
  Task **ppTStack_c0;
  Task *apTStack_48 [2];
  Workqueue *pWStack_40;
  
  if (t->_vptr_Task[2] == (_func_int_varargs *)PTR_is_runnable_004c4b34) {
    pTVar2 = t[1].list_next_;
    if (*(char *)&pTVar2->_vptr_Task != '\0') {
      if ((int)pTVar2->list_next_ < 1) goto LAB_002d3724;
LAB_002d36ac:
      if (t->list_next_ == (Task *)0x0) {
        if ((pTVar2->name_)._M_string_length == 0) {
          (pTVar2->name_)._M_string_length = (size_type)t;
          (pTVar2->name_).field_2._M_allocated_capacity = (size_type)t;
LAB_002d36dc:
          this->waiting_ = this->waiting_ + 1;
          return false;
        }
        sVar10 = (pTVar2->name_).field_2._M_allocated_capacity;
        if (*(int *)(sVar10 + 4) == 0) {
          *(Task **)(sVar10 + 4) = t;
          (pTVar2->name_).field_2._M_allocated_capacity = (size_type)t;
          goto LAB_002d36dc;
        }
        goto LAB_002d386c;
      }
      goto LAB_002d3834;
    }
  }
  else {
    pTVar2 = (Task *)(*t->_vptr_Task[2])(t);
    if (pTVar2 != (Task *)0x0) goto LAB_002d36ac;
LAB_002d3724:
    if (*pret == (Task *)0x0) {
      if (((CONCAT31(in_register_00000018,is_blocker) == 0) || (t->should_run_soon_ != false)) ||
         (((this->first_tasks_).head_ == (Task *)0x0 && ((this->tasks_).head_ == (Task *)0x0)))) {
        *pret = t;
        return true;
      }
      pTVar2 = t->list_next_;
    }
    else {
      pTVar2 = t->list_next_;
      if (t->should_run_soon_ != false) {
        if (pTVar2 == (Task *)0x0) {
          if ((this->first_tasks_).head_ == (Task *)0x0) {
            (this->first_tasks_).head_ = t;
            (this->first_tasks_).tail_ = t;
            goto LAB_002d3768;
          }
          pTVar2 = (this->first_tasks_).tail_;
          if (pTVar2->list_next_ == (Task *)0x0) {
            pTVar2->list_next_ = t;
            (this->first_tasks_).tail_ = t;
            goto LAB_002d3768;
          }
          goto LAB_002d386c;
        }
        goto LAB_002d3834;
      }
    }
    if (pTVar2 == (Task *)0x0) {
      if ((this->tasks_).head_ == (Task *)0x0) {
        (this->tasks_).head_ = t;
        (this->tasks_).tail_ = t;
LAB_002d3768:
        pCVar3 = (this->condvar_).condvar_;
        (*pCVar3->_vptr_Condvar_impl[3])(pCVar3);
        return false;
      }
      pTVar2 = (this->tasks_).tail_;
      if (pTVar2->list_next_ == (Task *)0x0) {
        pTVar2->list_next_ = t;
        (this->tasks_).tail_ = t;
        goto LAB_002d3768;
      }
      goto LAB_002d386c;
    }
LAB_002d3834:
    (*(code *)PTR_do_gold_unreachable_004c1a30)
              (PTR_s_in_a_linker_script_004c191c + 0x39bc,0x29,
               PTR_s_in_a_linker_script_004c191c + 0x3aac);
  }
  (*(code *)PTR_do_gold_unreachable_004c1a30)
            (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x7f8,0xab,
             PTR_s_in_a_linker_script_004c191c + 0x3ad4);
LAB_002d386c:
  iVar22 = 0x5a;
  piVar24 = (int *)(PTR_s_in_a_linker_script_004c191c + 0x3ab8);
  pWVar15 = (Workqueue *)(PTR_s__s_004c1a50 + 0x970);
  puVar32 = PTR_do_gold_unreachable_004c1a30;
  (*(code *)PTR_do_gold_unreachable_004c1a30)();
  iVar11 = *piVar24;
  piVar28 = piVar24 + 1;
  apTStack_48[0] = (Task *)0x0;
  if (piVar28 == piVar24 + iVar11 + 1) {
    uVar9 = 0;
  }
  else {
    uVar29 = *(undefined4 *)(puVar32 + 0x1f12c4);
    pWStack_40 = this;
    do {
      while (pcVar27 = (char *)*piVar28, *pcVar27 == '\0') {
        if (iVar22 != *(int *)(pcVar27 + 8)) {
          iVar11 = 0x84;
          pcVar33 = *(code **)(puVar32 + 0x1ee1ac);
          puVar16 = (undefined4 *)(*(int *)(puVar32 + 0x1ed9f8) + -0x7f8);
          (*pcVar33)(puVar16,0x84,*(int *)(puVar32 + 0x1ee098) + 0x3a5c);
          (**(code **)(*(int *)*puVar16 + 8))((int *)*puVar16);
          pcVar34 = *(code **)(*(int *)puVar16[9] + 8);
          if (pcVar34 == *(code **)(pcVar33 + 0x1f1098)) {
            if (iVar11 < 1) {
              pcVar27 = &DAT_0000006e;
              puVar17 = (undefined4 *)(*(int *)(pcVar33 + 0x1ede68) + 0x39bc);
              (**(code **)(pcVar33 + 0x1edf7c))(puVar17,0x6e,*(int *)(pcVar33 + 0x1ede68) + 0x3aec);
              (**(code **)(*(int *)*puVar16 + 0xc))((int *)*puVar16);
              pcVar33 = *(code **)(pcVar33 + 0x1ed814);
              (*pcVar33)();
              (**(code **)(*(int *)*puVar17 + 8))((int *)*puVar17);
              if (*pcVar27 != '\0') {
                piVar24 = (int *)*puVar17;
                iVar11 = *piVar24;
                pcVar27[8] = '\0';
                pcVar27[9] = '\0';
                pcVar27[10] = '\0';
                pcVar27[0xb] = '\0';
                *(int *)(pcVar27 + 4) = *(int *)(pcVar27 + 4) + 1;
                    /* WARNING: Could not recover jumptable at 0x002d3c1c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
                uVar9 = (**(code **)(iVar11 + 0xc))(piVar24);
                return (bool)uVar9;
              }
              iVar11 = 0x8e;
              pWVar18 = (Workqueue *)(*(int *)(pcVar33 + 0x1ed6d4) + -0x7f8);
              (**(code **)(pcVar33 + 0x1ede88))(pWVar18,0x8e,*(int *)(pcVar33 + 0x1edd74) + 0x3a50);
              (**(code **)(*(int *)*puVar17 + 0xc))((int *)*puVar17);
              pcVar33 = *(code **)(pcVar33 + 0x1ed720);
              this_00 = pWVar18;
              (*pcVar33)();
              pLVar5 = (this_00->lock_).lock_;
              auStack_120[0] = 0;
              pWStack_d8 = pWVar18;
              puStack_d4 = puVar17;
              uStack_d0 = uVar29;
              piStack_cc = piVar24;
              iStack_c8 = iVar22;
              pWStack_c4 = pWVar15;
              ppTStack_c0 = apTStack_48;
              (*pLVar5->_vptr_Lock_impl[2])(pLVar5);
              pTVar2 = find_runnable_or_wait(this_00,iVar11);
              if (pTVar2 == (Task *)0x0) {
                pLVar5 = (this_00->lock_).lock_;
                (*pLVar5->_vptr_Lock_impl[3])(pLVar5);
                return false;
              }
              p_Var31 = *(_func_int_varargs **)(pcVar33 + 0x1f0ee8);
              if (pTVar2->_vptr_Task[3] != p_Var31) {
                (*pTVar2->_vptr_Task[3])(pTVar2,auStack_120);
              }
              pLVar5 = (this_00->lock_).lock_;
              plStack_fc = &TStack_168.start_time_.wall;
              pcStack_100 = *(code **)(pcVar33 + 0x1f0eec);
              p_Stack_f4 = *(_func_int_varargs **)(pcVar33 + 0x1f0ef0);
              piVar24 = *(int **)(pcVar33 + 0x1edd48);
              p_Var30 = *(_func_int_varargs **)(pcVar33 + 0x1f0ef4);
              p_Var35 = pLVar5->_vptr_Lock_impl[3];
              this_00->running_ = this_00->running_ + 1;
              (*p_Var35)(pLVar5);
              iStack_f8 = *(int *)(pcVar33 + 0x1edcb0) + 0x39f0;
              iStack_ec = *(int *)(pcVar33 + 0x1edcb0) + 0x3a08;
              iVar22 = *(int *)(pcVar33 + 0x1ee464);
              goto LAB_002d3eac;
            }
            piVar24 = (int *)puVar16[8];
          }
          else {
            (*pcVar34)((int *)puVar16[9],iVar11);
            piVar24 = (int *)puVar16[8];
          }
          (**(code **)(*piVar24 + 0x10))(piVar24);
                    /* WARNING: Could not recover jumptable at 0x002d3b4c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
          uVar9 = (**(code **)(*(int *)*puVar16 + 0xc))((int *)*puVar16);
          return (bool)uVar9;
        }
        pcVar27[8] = '\0';
        pcVar27[9] = '\0';
        pcVar27[10] = '\0';
        pcVar27[0xb] = '\0';
        do {
          pTVar2 = *(Task **)(pcVar27 + 0xc);
          if (pTVar2 == (Task *)0x0) break;
          pTVar4 = pTVar2->list_next_;
          if (pTVar2 == *(Task **)(pcVar27 + 0x10)) {
            if (pTVar4 != (Task *)0x0) goto LAB_002d3a94;
            pcVar27[0xc] = '\0';
            pcVar27[0xd] = '\0';
            pcVar27[0xe] = '\0';
            pcVar27[0xf] = '\0';
            pcVar27[0x10] = '\0';
            pcVar27[0x11] = '\0';
            pcVar27[0x12] = '\0';
            pcVar27[0x13] = '\0';
          }
          else {
            *(Task **)(pcVar27 + 0xc) = pTVar4;
            if (pTVar4 == (Task *)0x0) goto LAB_002d3a5c;
            pTVar2->list_next_ = (Task *)0x0;
          }
          pWVar15->waiting_ = pWVar15->waiting_ + -1;
          bVar8 = return_or_queue(pWVar15,pTVar2,false,apTStack_48);
        } while (CONCAT31(extraout_var,bVar8) == 0);
LAB_002d398c:
        iVar11 = *piVar24;
        piVar28 = piVar28 + 1;
        if (piVar28 == piVar24 + iVar11 + 1) {
          return (bool)(char)apTStack_48[0];
        }
      }
      iVar7 = *(int *)(pcVar27 + 4) + -1;
      if (*(int *)(pcVar27 + 4) < 1) goto LAB_002d3a78;
      pcVar27[8] = '\0';
      pcVar27[9] = '\0';
      pcVar27[10] = '\0';
      pcVar27[0xb] = '\0';
      *(int *)(pcVar27 + 4) = iVar7;
      if ((iVar7 == 0) && (pTVar2 = *(Task **)(pcVar27 + 0xc), pTVar2 != (Task *)0x0)) {
        pTVar4 = pTVar2->list_next_;
        if (*(Task **)(pcVar27 + 0x10) == pTVar2) goto LAB_002d3a40;
        while (*(Task **)(pcVar27 + 0xc) = pTVar4, pTVar4 != (Task *)0x0) {
          pTVar2->list_next_ = (Task *)0x0;
          while( true ) {
            pWVar15->waiting_ = pWVar15->waiting_ + -1;
            return_or_queue(pWVar15,pTVar2,true,apTStack_48);
            pTVar2 = *(Task **)(pcVar27 + 0xc);
            if (pTVar2 == (Task *)0x0) goto LAB_002d398c;
            pTVar4 = pTVar2->list_next_;
            if (*(Task **)(pcVar27 + 0x10) != pTVar2) break;
LAB_002d3a40:
            if (pTVar4 != (Task *)0x0) goto LAB_002d3a94;
            pcVar27[0xc] = '\0';
            pcVar27[0xd] = '\0';
            pcVar27[0xe] = '\0';
            pcVar27[0xf] = '\0';
            pcVar27[0x10] = '\0';
            pcVar27[0x11] = '\0';
            pcVar27[0x12] = '\0';
            pcVar27[0x13] = '\0';
          }
        }
LAB_002d3a5c:
        uVar29 = 0x5a;
        do {
          (**(code **)(puVar32 + 0x1ee1ac))
                    (*(int *)(puVar32 + 0x1ee098) + 0x39bc,uVar29,
                     *(int *)(puVar32 + 0x1ee098) + 0x3aa0);
LAB_002d3a78:
          (**(code **)(puVar32 + 0x1ee1ac))
                    (*(int *)(puVar32 + 0x1ed9f8) + -0x7f8,0xa1,
                     *(int *)(puVar32 + 0x1ee098) + 0x3a6c);
LAB_002d3a94:
          uVar29 = 0x53;
        } while( true );
      }
      piVar28 = piVar28 + 1;
      uVar9 = SUB41(apTStack_48[0],0);
    } while (piVar28 != piVar24 + iVar11 + 1);
  }
  return (bool)uVar9;
LAB_002d3eac:
  puVar16 = (undefined4 *)*piVar24;
  if ((puVar16[2] != 0) && ((puVar16[5] & 1) != 0)) {
    uVar29 = *puVar16;
    if ((pTVar2->name_)._M_string_length == 0) {
      if (pTVar2->_vptr_Task[5] == p_Stack_f4) {
        pcVar23 = pTVar2[1].name_._M_dataplus._M_p;
        TStack_168.start_time_.user = (long)plStack_fc;
        if (pcVar23 == (pointer)0x0) {
          pcVar25 = (pointer)0xffffffff;
        }
        else {
          pcStack_f0 = pcVar23;
          iVar7 = (**(code **)(pcVar33 + 0x1f1f30))(pcVar23);
          pcVar25 = pcStack_f0 + iVar7;
          pcVar23 = pcStack_f0;
        }
        (**(code **)(pcVar33 + 0x1edefc))(&TStack_168,pcVar23,pcVar25,0);
      }
      else {
        (*pTVar2->_vptr_Task[5])(&TStack_168,pTVar2);
      }
      plVar20 = (long *)(pTVar2->name_)._M_dataplus._M_p;
      if ((long *)TStack_168.start_time_.user == plStack_fc) {
        if (TStack_168.start_time_.sys != 0) {
          if (TStack_168.start_time_.sys == 1) {
            *(char *)plVar20 = TStack_168.start_time_.wall._0_1_;
            plVar20 = (long *)(pTVar2->name_)._M_dataplus._M_p;
          }
          else {
            (**(code **)(pcVar33 + 0x1f1f3c))(plVar20,plStack_fc);
            plVar20 = (long *)(pTVar2->name_)._M_dataplus._M_p;
          }
        }
        (pTVar2->name_)._M_string_length = TStack_168.start_time_.sys;
        *(char *)((int)plVar20 + TStack_168.start_time_.sys) = '\0';
        sVar10 = TStack_168.start_time_.wall;
      }
      else {
        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
             *)plVar20 == &(pTVar2->name_).field_2) {
          (pTVar2->name_)._M_dataplus._M_p = (pointer)TStack_168.start_time_.user;
          (pTVar2->name_)._M_string_length = TStack_168.start_time_.sys;
          (pTVar2->name_).field_2._M_allocated_capacity = TStack_168.start_time_.wall;
        }
        else {
          sVar10 = (pTVar2->name_).field_2._M_allocated_capacity;
          (pTVar2->name_)._M_dataplus._M_p = (pointer)TStack_168.start_time_.user;
          (pTVar2->name_)._M_string_length = TStack_168.start_time_.sys;
          (pTVar2->name_).field_2._M_allocated_capacity = TStack_168.start_time_.wall;
          TStack_168.start_time_.user = (long)plVar20;
          if (plVar20 != (long *)0x0) goto LAB_002d3f6c;
        }
        TStack_168.start_time_.user = (long)plStack_fc;
        sVar10 = TStack_168.start_time_.wall;
      }
LAB_002d3f6c:
      TStack_168.start_time_.wall = sVar10;
      TStack_168.start_time_.sys = 0;
      *(char *)TStack_168.start_time_.user = '\0';
      if ((long *)TStack_168.start_time_.user != plStack_fc) {
        (**(code **)(pcVar33 + 0x1ed690))();
      }
    }
    (**(code **)(pcVar33 + 0x1ee3ac))(uVar29,iStack_f8,iVar11,(pTVar2->name_)._M_dataplus._M_p);
  }
  Timer::Timer(&TStack_168);
  if ((*(int *)(*piVar24 + 8) != 0) && ((*(uint *)(*piVar24 + 0x14) & 1) != 0)) {
    Timer::start(&TStack_168);
  }
  if (pTVar2->_vptr_Task[4] == p_Var30) {
    (**(code **)(*pTVar2[1]._vptr_Task + 8))(pTVar2[1]._vptr_Task,this_00);
  }
  else {
    (*pTVar2->_vptr_Task[4])(pTVar2,this_00,pTVar2);
  }
  if ((*(int *)(*piVar24 + 8) == 0) || ((*(uint *)(*piVar24 + 0x14) & 1) == 0)) {
LAB_002d3d6c:
    pLVar5 = (this_00->lock_).lock_;
  }
  else {
    Timer::get_elapsed_time(&TStack_10c,&TStack_168);
    lVar1 = TStack_10c.user;
    puVar16 = (undefined4 *)*piVar24;
    if ((puVar16[2] == 0) || ((puVar16[5] & 1) == 0)) goto LAB_002d3d6c;
    pcStack_f0 = (pointer)*puVar16;
    psVar12 = (size_type *)TStack_10c.sys;
    psVar26 = (size_type *)TStack_10c.wall;
    if ((pTVar2->name_)._M_string_length == 0) {
      psVar12 = asStack_130;
      if (pTVar2->_vptr_Task[5] == p_Stack_f4) {
        psStack_e8 = (size_type *)pTVar2[1].name_._M_dataplus._M_p;
        _Stack_138._M_p = (pointer)psVar12;
        if (psStack_e8 == (size_type *)0x0) {
          pcVar23 = (pointer)0xffffffff;
          psStack_e0 = (size_type *)TStack_10c.sys;
          psStack_e4 = (size_type *)TStack_10c.wall;
        }
        else {
          psStack_e0 = (size_type *)TStack_10c.sys;
          psStack_e4 = (size_type *)TStack_10c.wall;
          psStack_dc = psVar12;
          iVar7 = (**(code **)(pcVar33 + 0x1f1f30))(psStack_e8);
          pcVar23 = (pointer)((int)psStack_e8 + iVar7);
          psVar12 = psStack_dc;
        }
        pcVar25 = (pointer)psStack_e8;
        psStack_e8 = psStack_e4;
        psStack_e4 = psStack_e0;
        psStack_e0 = psVar12;
        (**(code **)(pcVar33 + 0x1edefc))(&_Stack_138,pcVar25,pcVar23,0);
        psVar14 = psStack_e0;
        psVar12 = psStack_e4;
        psVar26 = psStack_e8;
      }
      else {
        psStack_e0 = (size_type *)TStack_10c.sys;
        psStack_e4 = (size_type *)TStack_10c.wall;
        psStack_e8 = psVar12;
        (*pTVar2->_vptr_Task[5])(&_Stack_138,pTVar2);
        psVar14 = psStack_e8;
        psVar12 = psStack_e0;
        psVar26 = psStack_e4;
      }
      _Var21._M_p = (pTVar2->name_)._M_dataplus._M_p;
      if ((size_type *)_Stack_138._M_p == psVar14) {
        if (sStack_134 != 0) {
          if (sStack_134 == 1) {
            *_Var21._M_p = asStack_130[0]._0_1_;
            _Var21._M_p = (pTVar2->name_)._M_dataplus._M_p;
          }
          else {
            psStack_e8 = psVar14;
            psStack_e4 = psVar26;
            psStack_e0 = psVar12;
            (**(code **)(pcVar33 + 0x1f1f3c))(_Var21._M_p,psVar14);
            _Var21._M_p = (pTVar2->name_)._M_dataplus._M_p;
            psVar14 = psStack_e8;
            psVar12 = psStack_e0;
            psVar26 = psStack_e4;
          }
        }
        (pTVar2->name_)._M_string_length = sStack_134;
        *(_Var21._M_p + sStack_134) = '\0';
        psVar13 = psVar14;
        _Var21._M_p = _Stack_138._M_p;
        sVar10 = asStack_130[0];
      }
      else {
        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
             *)_Var21._M_p == &(pTVar2->name_).field_2) {
          (pTVar2->name_)._M_dataplus._M_p = _Stack_138._M_p;
          (pTVar2->name_)._M_string_length = sStack_134;
          (pTVar2->name_).field_2._M_allocated_capacity = asStack_130[0];
        }
        else {
          sVar10 = (pTVar2->name_).field_2._M_allocated_capacity;
          (pTVar2->name_)._M_dataplus._M_p = _Stack_138._M_p;
          (pTVar2->name_)._M_string_length = sStack_134;
          (pTVar2->name_).field_2._M_allocated_capacity = asStack_130[0];
          psVar13 = psVar14;
          _Stack_138._M_p = _Var21._M_p;
          if ((size_type *)_Var21._M_p != (size_type *)0x0) goto LAB_002d4130;
        }
        psVar13 = asStack_130;
        _Var21._M_p = (pointer)asStack_130;
        _Stack_138._M_p = (pointer)psVar14;
        sVar10 = asStack_130[0];
      }
LAB_002d4130:
      asStack_130[0] = sVar10;
      sStack_134 = 0;
      *_Var21._M_p = '\0';
      if ((size_type *)_Stack_138._M_p != psVar13) {
        psStack_e8 = psVar26;
        psStack_e4 = psVar12;
        (**(code **)(pcVar33 + 0x1ed690))();
        psVar12 = psStack_e4;
        psVar26 = psStack_e8;
      }
    }
    (**(code **)(pcVar33 + 0x1ee3ac))
              (pcStack_f0,iStack_ec,iVar11,(pTVar2->name_)._M_dataplus._M_p,lVar1 / 1000,
               (lVar1 % 1000) * 1000,(int)psVar12 / 1000,((int)psVar12 % 1000) * 1000,
               (int)psVar26 / 1000,((int)psVar26 % 1000) * 1000);
    pLVar5 = (this_00->lock_).lock_;
  }
  (*pLVar5->_vptr_Lock_impl[2])(pLVar5);
  this_00->running_ = this_00->running_ + -1;
  pTVar4 = (Task *)(*pcStack_100)(this_00,pTVar2,auStack_120);
  if (pTVar4 == (Task *)0x0) {
    pTVar4 = find_runnable(this_00);
    if (pTVar4 != (Task *)0x0) {
      pp_Var6 = pTVar4->_vptr_Task;
      goto LAB_002d3db4;
    }
  }
  else {
    pp_Var6 = pTVar4->_vptr_Task;
LAB_002d3db4:
    auStack_120[0] = 0;
    if (pp_Var6[3] == p_Var31) {
      iVar7 = this_00->running_;
    }
    else {
      (*pp_Var6[3])(pTVar4,auStack_120);
      iVar7 = this_00->running_;
    }
    this_00->running_ = iVar7 + 1;
  }
  pLVar5 = (this_00->lock_).lock_;
  (*pLVar5->_vptr_Lock_impl[3])(pLVar5);
  if (pTVar2->_vptr_Task[1] == *(_func_int_varargs **)(pcVar33 + 0x1f0ef8)) {
    pTVar2->_vptr_Task = (_func_int_varargs **)(iVar22 + 8);
    if (pTVar2[1]._vptr_Task != (_func_int_varargs **)0x0) {
      (**(code **)(*pTVar2[1]._vptr_Task + 4))();
    }
    pTVar19 = pTVar2[1].list_next_;
    iVar7 = *(int *)(pcVar33 + 0x1ee7e4);
    if (pTVar19 != (Task *)0x0) {
      iVar7 = 100;
      if ((pTVar19->list_next_ != (Task *)0x0) ||
         (iVar7 = 0x65, (pTVar19->name_)._M_dataplus._M_p != (pointer)0x0)) {
LAB_002d4440:
        pWVar15 = (Workqueue *)(*(int *)(pcVar33 + 0x1ed610) + -0x7f8);
        (**(code **)(pcVar33 + 0x1eddc4))();
        pLVar5 = (this_00->lock_).lock_;
        (*pLVar5->_vptr_Lock_impl[3])(pLVar5);
        (**(code **)(pcVar33 + 0x1ed65c))();
        pLVar5 = (this_00->lock_).lock_;
        (*pLVar5->_vptr_Lock_impl[3])(pLVar5);
        (**(code **)(pcVar33 + 0x1ed65c))();
        do {
          bVar8 = find_and_run_task(pWVar15,iVar7);
        } while (CONCAT31(extraout_var_00,bVar8) != 0);
        return bVar8;
      }
      if (((pTVar19->name_)._M_string_length != 0) ||
         ((pTVar19->name_).field_2._M_allocated_capacity != 0)) {
        iVar7 = 0x2c;
        (**(code **)(pcVar33 + 0x1eddc4))
                  (*(int *)(pcVar33 + 0x1ed610) + -0x7f8,0x2c,*(int *)(pcVar33 + 0x1edcb0) + 0x3ae0)
        ;
        goto LAB_002d4440;
      }
      (**(code **)(pcVar33 + 0x1ed7b8))(pTVar19,0x14);
      iVar7 = *(int *)(pcVar33 + 0x1ee7e4);
    }
    pcVar23 = (pTVar2->name_)._M_dataplus._M_p;
    pTVar2->_vptr_Task = (_func_int_varargs **)(iVar7 + 8);
    if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
         *)pcVar23 != &(pTVar2->name_).field_2) {
      (**(code **)(pcVar33 + 0x1ed690))();
    }
    (**(code **)(pcVar33 + 0x1ed7b8))(pTVar2,0x30);
  }
  else {
    (*pTVar2->_vptr_Task[1])(pTVar2);
  }
  pTVar2 = pTVar4;
  if (pTVar4 == (Task *)0x0) {
    return true;
  }
  goto LAB_002d3eac;
}



/* gold::Workqueue::return_or_queue(gold::Task*, bool, gold::Task**) */

undefined4 __thiscall
gold::Workqueue::return_or_queue(Workqueue *this,Task *param_1,bool param_2,Task **param_3)

{
  char *pcVar1;
  int iVar2;
  int iVar3;
  Workqueue *this_00;
  int iVar4;
  Task *pTVar5;
  undefined4 uVar6;
  undefined3 in_register_00000018;
  int *piVar7;
  int *piVar8;
  undefined *puVar9;
  Task *apTStack_48 [2];
  Workqueue *pWStack_40;
  
  if (*(code **)(*(int *)param_1 + 8) == (code *)PTR_is_runnable_004c4b34) {
    pcVar1 = *(char **)(param_1 + 0x28);
    if (*pcVar1 != '\0') {
      if (*(int *)(pcVar1 + 4) < 1) goto LAB_002d3724;
LAB_002d36ac:
      if (*(int *)(param_1 + 4) == 0) {
        if (*(int *)(pcVar1 + 0xc) == 0) {
          *(Task **)(pcVar1 + 0xc) = param_1;
          *(Task **)(pcVar1 + 0x10) = param_1;
LAB_002d36dc:
          *(int *)(this + 0x18) = *(int *)(this + 0x18) + 1;
          return 0;
        }
        if (*(int *)(*(int *)(pcVar1 + 0x10) + 4) == 0) {
          *(Task **)(*(int *)(pcVar1 + 0x10) + 4) = param_1;
          *(Task **)(pcVar1 + 0x10) = param_1;
          goto LAB_002d36dc;
        }
        goto LAB_002d386c;
      }
      goto LAB_002d3834;
    }
  }
  else {
    pcVar1 = (char *)(**(code **)(*(int *)param_1 + 8))(param_1);
    if (pcVar1 != (char *)0x0) goto LAB_002d36ac;
LAB_002d3724:
    if (*param_3 == (Task *)0x0) {
      if (((CONCAT31(in_register_00000018,param_2) == 0) || (param_1[0x20] != (Task)0x0)) ||
         ((*(int *)(this + 4) == 0 && (*(int *)(this + 0xc) == 0)))) {
        *param_3 = param_1;
        return 1;
      }
      iVar3 = *(int *)(param_1 + 4);
    }
    else {
      iVar3 = *(int *)(param_1 + 4);
      if (param_1[0x20] != (Task)0x0) {
        if (iVar3 == 0) {
          if (*(int *)(this + 4) == 0) {
            *(Task **)(this + 4) = param_1;
            *(Task **)(this + 8) = param_1;
            goto LAB_002d3768;
          }
          if (*(int *)(*(int *)(this + 8) + 4) == 0) {
            *(Task **)(*(int *)(this + 8) + 4) = param_1;
            *(Task **)(this + 8) = param_1;
            goto LAB_002d3768;
          }
          goto LAB_002d386c;
        }
        goto LAB_002d3834;
      }
    }
    if (iVar3 == 0) {
      if (*(int *)(this + 0xc) == 0) {
        *(Task **)(this + 0xc) = param_1;
        *(Task **)(this + 0x10) = param_1;
LAB_002d3768:
        (**(code **)(**(int **)(this + 0x20) + 0xc))(*(int **)(this + 0x20));
        return 0;
      }
      if (*(int *)(*(int *)(this + 0x10) + 4) == 0) {
        *(Task **)(*(int *)(this + 0x10) + 4) = param_1;
        *(Task **)(this + 0x10) = param_1;
        goto LAB_002d3768;
      }
      goto LAB_002d386c;
    }
LAB_002d3834:
    (*(code *)PTR_do_gold_unreachable_004c1a30)
              (PTR_s_in_a_linker_script_004c191c + 0x39bc,0x29,
               PTR_s_in_a_linker_script_004c191c + 0x3aac);
  }
  (*(code *)PTR_do_gold_unreachable_004c1a30)
            (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x7f8,0xab,
             PTR_s_in_a_linker_script_004c191c + 0x3ad4);
LAB_002d386c:
  iVar4 = 0x5a;
  piVar7 = (int *)(PTR_s_in_a_linker_script_004c191c + 0x3ab8);
  this_00 = (Workqueue *)(PTR_s__s_004c1a50 + 0x970);
  puVar9 = PTR_do_gold_unreachable_004c1a30;
  (*(code *)PTR_do_gold_unreachable_004c1a30)();
  iVar3 = *piVar7;
  piVar8 = piVar7 + 1;
  apTStack_48[0] = (Task *)0x0;
  if (piVar8 == piVar7 + iVar3 + 1) {
    apTStack_48[0] = (Task *)0x0;
  }
  else {
    pWStack_40 = this;
    do {
      while (pcVar1 = (char *)*piVar8, *pcVar1 != '\0') {
        iVar2 = *(int *)(pcVar1 + 4) + -1;
        if (*(int *)(pcVar1 + 4) < 1) {
          uVar6 = (**(code **)(puVar9 + 0x1ee1ac))
                            (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0xa1,
                             *(int *)(puVar9 + 0x1ee098) + 0x3a6c);
          return uVar6;
        }
        pcVar1[8] = '\0';
        pcVar1[9] = '\0';
        pcVar1[10] = '\0';
        pcVar1[0xb] = '\0';
        *(int *)(pcVar1 + 4) = iVar2;
        if ((iVar2 == 0) && (pTVar5 = *(Task **)(pcVar1 + 0xc), pTVar5 != (Task *)0x0)) {
          iVar3 = *(int *)(pTVar5 + 4);
          if (*(Task **)(pcVar1 + 0x10) == pTVar5) goto LAB_002d3a40;
          while (*(int *)(pcVar1 + 0xc) = iVar3, iVar3 != 0) {
            *(undefined4 *)(pTVar5 + 4) = 0;
            while( true ) {
              *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;
              return_or_queue(this_00,pTVar5,true,apTStack_48);
              pTVar5 = *(Task **)(pcVar1 + 0xc);
              if (pTVar5 == (Task *)0x0) goto LAB_002d398c;
              iVar3 = *(int *)(pTVar5 + 4);
              if (*(Task **)(pcVar1 + 0x10) != pTVar5) break;
LAB_002d3a40:
              if (iVar3 != 0) goto LAB_002d3a94;
              pcVar1[0xc] = '\0';
              pcVar1[0xd] = '\0';
              pcVar1[0xe] = '\0';
              pcVar1[0xf] = '\0';
              pcVar1[0x10] = '\0';
              pcVar1[0x11] = '\0';
              pcVar1[0x12] = '\0';
              pcVar1[0x13] = '\0';
            }
          }
LAB_002d3a5c:
          uVar6 = 0x5a;
          goto LAB_002d3a60;
        }
        piVar8 = piVar8 + 1;
        if (piVar8 == piVar7 + iVar3 + 1) {
          return apTStack_48[0];
        }
      }
      if (iVar4 != *(int *)(pcVar1 + 8)) {
        uVar6 = (**(code **)(puVar9 + 0x1ee1ac))
                          (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0x84,
                           *(int *)(puVar9 + 0x1ee098) + 0x3a5c);
        return uVar6;
      }
      pcVar1[8] = '\0';
      pcVar1[9] = '\0';
      pcVar1[10] = '\0';
      pcVar1[0xb] = '\0';
      do {
        pTVar5 = *(Task **)(pcVar1 + 0xc);
        if (pTVar5 == (Task *)0x0) break;
        iVar3 = *(int *)(pTVar5 + 4);
        if (pTVar5 == *(Task **)(pcVar1 + 0x10)) {
          if (iVar3 != 0) goto LAB_002d3a94;
          pcVar1[0xc] = '\0';
          pcVar1[0xd] = '\0';
          pcVar1[0xe] = '\0';
          pcVar1[0xf] = '\0';
          pcVar1[0x10] = '\0';
          pcVar1[0x11] = '\0';
          pcVar1[0x12] = '\0';
          pcVar1[0x13] = '\0';
        }
        else {
          *(int *)(pcVar1 + 0xc) = iVar3;
          if (iVar3 == 0) goto LAB_002d3a5c;
          *(undefined4 *)(pTVar5 + 4) = 0;
        }
        *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;
        iVar3 = return_or_queue(this_00,pTVar5,false,apTStack_48);
      } while (iVar3 == 0);
LAB_002d398c:
      iVar3 = *piVar7;
      piVar8 = piVar8 + 1;
    } while (piVar8 != piVar7 + iVar3 + 1);
  }
  return apTStack_48[0];
LAB_002d3a94:
  uVar6 = 0x53;
LAB_002d3a60:
  uVar6 = (**(code **)(puVar9 + 0x1ee1ac))
                    (*(int *)(puVar9 + 0x1ee098) + 0x39bc,uVar6,*(int *)(puVar9 + 0x1ee098) + 0x3aa0
                    );
  return uVar6;
}


lui gp,0x1f
addiu gp,gp,0x5be0
addu gp,gp,t9
lw v1,0x0(a1)
addiu sp,sp,-0x20
lw v0,-0x470c(gp)
sw gp,0x10(sp)
sw s0,0x18(sp)
sw ra,0x1c(sp)
lw t9,0x8(v1)
bne t9,v0,0x002d36fc
_or s0,a0,zero
lw v0,0x28(a1)
lbu v1,0x0(v0)
beq v1,zero,0x002d384c
_nop
lw v1,0x4(v0)
blez v1,0x002d3724
_nop
lw v1,0x4(a1)
bne v1,zero,0x002d3830
_nop
lw v1,0xc(v0)
beq v1,zero,0x002d3824
_nop
lw v1,0x10(v0)
lw a0,0x4(v1)
bne a0,zero,0x002d3868
_nop
sw a1,0x4(v1)
sw a1,0x10(v0)
lw v1,0x18(s0)
or v0,zero,zero
lw ra,0x1c(sp)
addiu v1,v1,0x1
sw v1,0x18(s0)
lw s0,0x18(sp)
jr ra
_addiu sp,sp,0x20
sw a3,0x2c(sp)
or a0,a1,zero
sw a2,0x28(sp)
jalr t9
_sw a1,0x24(sp)
lw gp,0x10(sp)
lw a1,0x24(sp)
lw a2,0x28(sp)
bne v0,zero,0x002d36ac
_lw a3,0x2c(sp)
lw v0,0x0(a3)
beq v0,zero,0x002d3794
_nop
lbu v1,0x20(a1)
beq v1,zero,0x002d37b8
_lw v0,0x4(a1)
bne v0,zero,0x002d3830
_nop
lw v0,0x4(s0)
beq v0,zero,0x002d380c
_nop
lw v0,0x8(s0)
lw v1,0x4(v0)
bne v1,zero,0x002d386c
_lw a2,-0x7924(gp)
sw a1,0x4(v0)
sw a1,0x8(s0)
lw v0,0x20(s0)
or a0,v0,zero
lw v0,0x0(v0)
lw t9,0xc(v0)
jalr t9
_nop
or v0,zero,zero
lw ra,0x1c(sp)
lw s0,0x18(sp)
jr ra
_addiu sp,sp,0x20
beq a2,zero,0x002d37f8
_lw ra,0x1c(sp)
lbu v0,0x20(a1)
bne v0,zero,0x002d37fc
_li v0,0x1
lw v0,0x4(s0)
beq v0,zero,0x002d37e8
_nop
lw v0,0x4(a1)
bne v0,zero,0x002d3834
_lw a2,-0x7924(gp)
lw v0,0xc(s0)
beq v0,zero,0x002d3818
_nop
lw v0,0x10(s0)
lw v1,0x4(v0)
bne v1,zero,0x002d386c
_lw a2,-0x7924(gp)
sw a1,0x4(v0)
b 0x002d3768
_sw a1,0x10(s0)
lw v0,0xc(s0)
bne v0,zero,0x002d37b4
_nop
lw ra,0x1c(sp)
li v0,0x1
lw s0,0x18(sp)
sw a1,0x0(a3)
jr ra
_addiu sp,sp,0x20
sw a1,0x4(s0)
b 0x002d3768
_sw a1,0x8(s0)
sw a1,0xc(s0)
b 0x002d3768
_sw a1,0x10(s0)
sw a1,0xc(v0)
b 0x002d36dc
_sw a1,0x10(v0)
lw a2,-0x7924(gp)
li a1,0x29
lw a0,-0x7924(gp)
lw t9,-0x7810(gp)
addiu a2,a2,0x3aac
jalr t9
_addiu a0,a0,0x39bc
lw a2,-0x7924(gp)
li a1,0xab
lw a0,-0x7fc4(gp)
lw t9,-0x7810(gp)
addiu a2,a2,0x3ad4
jalr t9
_addiu a0,a0,-0x7f8
lw a2,-0x7924(gp)
li a1,0x5a
lw a0,-0x77f0(gp)
lw t9,-0x7810(gp)
addiu a2,a2,0x3ab8
jalr t9
_addiu a0,a0,0x970
(translation_unit "/* gold::Workqueue::return_or_queue(gold::Task*, bool, gold::Task**) */\n\nundefined4 __thiscall\ngold::Workqueue::return_or_queue(Workqueue *this,Task *param_1,bool param_2,Task **param_3)\n\n{\n  char *pcVar1;\n  int iVar2;\n  int iVar3;\n  Workqueue *this_00;\n  int iVar4;\n  Task *pTVar5;\n  undefined4 uVar6;\n  undefined3 in_register_00000018;\n  int *piVar7;\n  int *piVar8;\n  undefined *puVar9;\n  Task *apTStack_48 [2];\n  Workqueue *pWStack_40;\n  \n  if (*(code **)(*(int *)param_1 + 8) == (code *)PTR_is_runnable_004c4b34) {\n    pcVar1 = *(char **)(param_1 + 0x28);\n    if (*pcVar1 != '\0') {\n      if (*(int *)(pcVar1 + 4) < 1) goto LAB_002d3724;\nLAB_002d36ac:\n      if (*(int *)(param_1 + 4) == 0) {\n        if (*(int *)(pcVar1 + 0xc) == 0) {\n          *(Task **)(pcVar1 + 0xc) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\nLAB_002d36dc:\n          *(int *)(this + 0x18) = *(int *)(this + 0x18) + 1;\n          return 0;\n        }\n        if (*(int *)(*(int *)(pcVar1 + 0x10) + 4) == 0) {\n          *(Task **)(*(int *)(pcVar1 + 0x10) + 4) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\n          goto LAB_002d36dc;\n        }\n        goto LAB_002d386c;\n      }\n      goto LAB_002d3834;\n    }\n  }\n  else {\n    pcVar1 = (char *)(**(code **)(*(int *)param_1 + 8))(param_1);\n    if (pcVar1 != (char *)0x0) goto LAB_002d36ac;\nLAB_002d3724:\n    if (*param_3 == (Task *)0x0) {\n      if (((CONCAT31(in_register_00000018,param_2) == 0) || (param_1[0x20] != (Task)0x0)) ||\n         ((*(int *)(this + 4) == 0 && (*(int *)(this + 0xc) == 0)))) {\n        *param_3 = param_1;\n        return 1;\n      }\n      iVar3 = *(int *)(param_1 + 4);\n    }\n    else {\n      iVar3 = *(int *)(param_1 + 4);\n      if (param_1[0x20] != (Task)0x0) {\n        if (iVar3 == 0) {\n          if (*(int *)(this + 4) == 0) {\n            *(Task **)(this + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          if (*(int *)(*(int *)(this + 8) + 4) == 0) {\n            *(Task **)(*(int *)(this + 8) + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }\n        goto LAB_002d3834;\n      }\n    }\n    if (iVar3 == 0) {\n      if (*(int *)(this + 0xc) == 0) {\n        *(Task **)(this + 0xc) = param_1;\n        *(Task **)(this + 0x10) = param_1;\nLAB_002d3768:\n        (**(code **)(**(int **)(this + 0x20) + 0xc))(*(int **)(this + 0x20));\n        return 0;\n      }\n      if (*(int *)(*(int *)(this + 0x10) + 4) == 0) {\n        *(Task **)(*(int *)(this + 0x10) + 4) = param_1;\n        *(Task **)(this + 0x10) = param_1;\n        goto LAB_002d3768;\n      }\n      goto LAB_002d386c;\n    }\nLAB_002d3834:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x39bc,0x29,\n               PTR_s_in_a_linker_script_004c191c + 0x3aac);\n  }\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x7f8,0xab,\n             PTR_s_in_a_linker_script_004c191c + 0x3ad4);\nLAB_002d386c:\n  iVar4 = 0x5a;\n  piVar7 = (int *)(PTR_s_in_a_linker_script_004c191c + 0x3ab8);\n  this_00 = (Workqueue *)(PTR_s__s_004c1a50 + 0x970);\n  puVar9 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)();\n  iVar3 = *piVar7;\n  piVar8 = piVar7 + 1;\n  apTStack_48[0] = (Task *)0x0;\n  if (piVar8 == piVar7 + iVar3 + 1) {\n    apTStack_48[0] = (Task *)0x0;\n  }\n  else {\n    pWStack_40 = this;\n    do {\n      while (pcVar1 = (char *)*piVar8, *pcVar1 != '\0') {\n        iVar2 = *(int *)(pcVar1 + 4) + -1;\n        if (*(int *)(pcVar1 + 4) < 1) {\n          uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                            (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0xa1,\n                             *(int *)(puVar9 + 0x1ee098) + 0x3a6c);\n          return uVar6;\n        }\n        pcVar1[8] = '\0';\n        pcVar1[9] = '\0';\n        pcVar1[10] = '\0';\n        pcVar1[0xb] = '\0';\n        *(int *)(pcVar1 + 4) = iVar2;\n        if ((iVar2 == 0) && (pTVar5 = *(Task **)(pcVar1 + 0xc), pTVar5 != (Task *)0x0)) {\n          iVar3 = *(int *)(pTVar5 + 4);\n          if (*(Task **)(pcVar1 + 0x10) == pTVar5) goto LAB_002d3a40;\n          while (*(int *)(pcVar1 + 0xc) = iVar3, iVar3 != 0) {\n            *(undefined4 *)(pTVar5 + 4) = 0;\n            while( true ) {\n              *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n              return_or_queue(this_00,pTVar5,true,apTStack_48);\n              pTVar5 = *(Task **)(pcVar1 + 0xc);\n              if (pTVar5 == (Task *)0x0) goto LAB_002d398c;\n              iVar3 = *(int *)(pTVar5 + 4);\n              if (*(Task **)(pcVar1 + 0x10) != pTVar5) break;\nLAB_002d3a40:\n              if (iVar3 != 0) goto LAB_002d3a94;\n              pcVar1[0xc] = '\0';\n              pcVar1[0xd] = '\0';\n              pcVar1[0xe] = '\0';\n              pcVar1[0xf] = '\0';\n              pcVar1[0x10] = '\0';\n              pcVar1[0x11] = '\0';\n              pcVar1[0x12] = '\0';\n              pcVar1[0x13] = '\0';\n            }\n          }\nLAB_002d3a5c:\n          uVar6 = 0x5a;\n          goto LAB_002d3a60;\n        }\n        piVar8 = piVar8 + 1;\n        if (piVar8 == piVar7 + iVar3 + 1) {\n          return apTStack_48[0];\n        }\n      }\n      if (iVar4 != *(int *)(pcVar1 + 8)) {\n        uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                          (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0x84,\n                           *(int *)(puVar9 + 0x1ee098) + 0x3a5c);\n        return uVar6;\n      }\n      pcVar1[8] = '\0';\n      pcVar1[9] = '\0';\n      pcVar1[10] = '\0';\n      pcVar1[0xb] = '\0';\n      do {\n        pTVar5 = *(Task **)(pcVar1 + 0xc);\n        if (pTVar5 == (Task *)0x0) break;\n        iVar3 = *(int *)(pTVar5 + 4);\n        if (pTVar5 == *(Task **)(pcVar1 + 0x10)) {\n          if (iVar3 != 0) goto LAB_002d3a94;\n          pcVar1[0xc] = '\0';\n          pcVar1[0xd] = '\0';\n          pcVar1[0xe] = '\0';\n          pcVar1[0xf] = '\0';\n          pcVar1[0x10] = '\0';\n          pcVar1[0x11] = '\0';\n          pcVar1[0x12] = '\0';\n          pcVar1[0x13] = '\0';\n        }\n        else {\n          *(int *)(pcVar1 + 0xc) = iVar3;\n          if (iVar3 == 0) goto LAB_002d3a5c;\n          *(undefined4 *)(pTVar5 + 4) = 0;\n        }\n        *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n        iVar3 = return_or_queue(this_00,pTVar5,false,apTStack_48);\n      } while (iVar3 == 0);\nLAB_002d398c:\n      iVar3 = *piVar7;\n      piVar8 = piVar8 + 1;\n    } while (piVar8 != piVar7 + iVar3 + 1);\n  }\n  return apTStack_48[0];\nLAB_002d3a94:\n  uVar6 = 0x53;\nLAB_002d3a60:\n  uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                    (*(int *)(puVar9 + 0x1ee098) + 0x39bc,uVar6,*(int *)(puVar9 + 0x1ee098) + 0x3aa0\n                    );\n  return uVar6;\n}\n\n" comment (function_definition "undefined4 __thiscall\ngold::Workqueue::return_or_queue(Workqueue *this,Task *param_1,bool param_2,Task **param_3)\n\n{\n  char *pcVar1;\n  int iVar2;\n  int iVar3;\n  Workqueue *this_00;\n  int iVar4;\n  Task *pTVar5;\n  undefined4 uVar6;\n  undefined3 in_register_00000018;\n  int *piVar7;\n  int *piVar8;\n  undefined *puVar9;\n  Task *apTStack_48 [2];\n  Workqueue *pWStack_40;\n  \n  if (*(code **)(*(int *)param_1 + 8) == (code *)PTR_is_runnable_004c4b34) {\n    pcVar1 = *(char **)(param_1 + 0x28);\n    if (*pcVar1 != '\0') {\n      if (*(int *)(pcVar1 + 4) < 1) goto LAB_002d3724;\nLAB_002d36ac:\n      if (*(int *)(param_1 + 4) == 0) {\n        if (*(int *)(pcVar1 + 0xc) == 0) {\n          *(Task **)(pcVar1 + 0xc) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\nLAB_002d36dc:\n          *(int *)(this + 0x18) = *(int *)(this + 0x18) + 1;\n          return 0;\n        }\n        if (*(int *)(*(int *)(pcVar1 + 0x10) + 4) == 0) {\n          *(Task **)(*(int *)(pcVar1 + 0x10) + 4) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\n          goto LAB_002d36dc;\n        }\n        goto LAB_002d386c;\n      }\n      goto LAB_002d3834;\n    }\n  }\n  else {\n    pcVar1 = (char *)(**(code **)(*(int *)param_1 + 8))(param_1);\n    if (pcVar1 != (char *)0x0) goto LAB_002d36ac;\nLAB_002d3724:\n    if (*param_3 == (Task *)0x0) {\n      if (((CONCAT31(in_register_00000018,param_2) == 0) || (param_1[0x20] != (Task)0x0)) ||\n         ((*(int *)(this + 4) == 0 && (*(int *)(this + 0xc) == 0)))) {\n        *param_3 = param_1;\n        return 1;\n      }\n      iVar3 = *(int *)(param_1 + 4);\n    }\n    else {\n      iVar3 = *(int *)(param_1 + 4);\n      if (param_1[0x20] != (Task)0x0) {\n        if (iVar3 == 0) {\n          if (*(int *)(this + 4) == 0) {\n            *(Task **)(this + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          if (*(int *)(*(int *)(this + 8) + 4) == 0) {\n            *(Task **)(*(int *)(this + 8) + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }\n        goto LAB_002d3834;\n      }\n    }\n    if (iVar3 == 0) {\n      if (*(int *)(this + 0xc) == 0) {\n        *(Task **)(this + 0xc) = param_1;\n        *(Task **)(this + 0x10) = param_1;\nLAB_002d3768:\n        (**(code **)(**(int **)(this + 0x20) + 0xc))(*(int **)(this + 0x20));\n        return 0;\n      }\n      if (*(int *)(*(int *)(this + 0x10) + 4) == 0) {\n        *(Task **)(*(int *)(this + 0x10) + 4) = param_1;\n        *(Task **)(this + 0x10) = param_1;\n        goto LAB_002d3768;\n      }\n      goto LAB_002d386c;\n    }\nLAB_002d3834:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x39bc,0x29,\n               PTR_s_in_a_linker_script_004c191c + 0x3aac);\n  }\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x7f8,0xab,\n             PTR_s_in_a_linker_script_004c191c + 0x3ad4);\nLAB_002d386c:\n  iVar4 = 0x5a;\n  piVar7 = (int *)(PTR_s_in_a_linker_script_004c191c + 0x3ab8);\n  this_00 = (Workqueue *)(PTR_s__s_004c1a50 + 0x970);\n  puVar9 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)();\n  iVar3 = *piVar7;\n  piVar8 = piVar7 + 1;\n  apTStack_48[0] = (Task *)0x0;\n  if (piVar8 == piVar7 + iVar3 + 1) {\n    apTStack_48[0] = (Task *)0x0;\n  }\n  else {\n    pWStack_40 = this;\n    do {\n      while (pcVar1 = (char *)*piVar8, *pcVar1 != '\0') {\n        iVar2 = *(int *)(pcVar1 + 4) + -1;\n        if (*(int *)(pcVar1 + 4) < 1) {\n          uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                            (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0xa1,\n                             *(int *)(puVar9 + 0x1ee098) + 0x3a6c);\n          return uVar6;\n        }\n        pcVar1[8] = '\0';\n        pcVar1[9] = '\0';\n        pcVar1[10] = '\0';\n        pcVar1[0xb] = '\0';\n        *(int *)(pcVar1 + 4) = iVar2;\n        if ((iVar2 == 0) && (pTVar5 = *(Task **)(pcVar1 + 0xc), pTVar5 != (Task *)0x0)) {\n          iVar3 = *(int *)(pTVar5 + 4);\n          if (*(Task **)(pcVar1 + 0x10) == pTVar5) goto LAB_002d3a40;\n          while (*(int *)(pcVar1 + 0xc) = iVar3, iVar3 != 0) {\n            *(undefined4 *)(pTVar5 + 4) = 0;\n            while( true ) {\n              *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n              return_or_queue(this_00,pTVar5,true,apTStack_48);\n              pTVar5 = *(Task **)(pcVar1 + 0xc);\n              if (pTVar5 == (Task *)0x0) goto LAB_002d398c;\n              iVar3 = *(int *)(pTVar5 + 4);\n              if (*(Task **)(pcVar1 + 0x10) != pTVar5) break;\nLAB_002d3a40:\n              if (iVar3 != 0) goto LAB_002d3a94;\n              pcVar1[0xc] = '\0';\n              pcVar1[0xd] = '\0';\n              pcVar1[0xe] = '\0';\n              pcVar1[0xf] = '\0';\n              pcVar1[0x10] = '\0';\n              pcVar1[0x11] = '\0';\n              pcVar1[0x12] = '\0';\n              pcVar1[0x13] = '\0';\n            }\n          }\nLAB_002d3a5c:\n          uVar6 = 0x5a;\n          goto LAB_002d3a60;\n        }\n        piVar8 = piVar8 + 1;\n        if (piVar8 == piVar7 + iVar3 + 1) {\n          return apTStack_48[0];\n        }\n      }\n      if (iVar4 != *(int *)(pcVar1 + 8)) {\n        uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                          (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0x84,\n                           *(int *)(puVar9 + 0x1ee098) + 0x3a5c);\n        return uVar6;\n      }\n      pcVar1[8] = '\0';\n      pcVar1[9] = '\0';\n      pcVar1[10] = '\0';\n      pcVar1[0xb] = '\0';\n      do {\n        pTVar5 = *(Task **)(pcVar1 + 0xc);\n        if (pTVar5 == (Task *)0x0) break;\n        iVar3 = *(int *)(pTVar5 + 4);\n        if (pTVar5 == *(Task **)(pcVar1 + 0x10)) {\n          if (iVar3 != 0) goto LAB_002d3a94;\n          pcVar1[0xc] = '\0';\n          pcVar1[0xd] = '\0';\n          pcVar1[0xe] = '\0';\n          pcVar1[0xf] = '\0';\n          pcVar1[0x10] = '\0';\n          pcVar1[0x11] = '\0';\n          pcVar1[0x12] = '\0';\n          pcVar1[0x13] = '\0';\n        }\n        else {\n          *(int *)(pcVar1 + 0xc) = iVar3;\n          if (iVar3 == 0) goto LAB_002d3a5c;\n          *(undefined4 *)(pTVar5 + 4) = 0;\n        }\n        *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n        iVar3 = return_or_queue(this_00,pTVar5,false,apTStack_48);\n      } while (iVar3 == 0);\nLAB_002d398c:\n      iVar3 = *piVar7;\n      piVar8 = piVar8 + 1;\n    } while (piVar8 != piVar7 + iVar3 + 1);\n  }\n  return apTStack_48[0];\nLAB_002d3a94:\n  uVar6 = 0x53;\nLAB_002d3a60:\n  uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                    (*(int *)(puVar9 + 0x1ee098) + 0x39bc,uVar6,*(int *)(puVar9 + 0x1ee098) + 0x3aa0\n                    );\n  return uVar6;\n}" type_identifier (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Workqueue::" identifier : : identifier : :) (function_declarator "return_or_queue(Workqueue *this,Task *param_1,bool param_2,Task **param_3)" identifier (parameter_list "(Workqueue *this,Task *param_1,bool param_2,Task **param_3)" ( (parameter_declaration "Workqueue *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Task *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "bool param_2" primitive_type identifier) , (parameter_declaration "Task **param_3" type_identifier (pointer_declarator "**param_3" * (pointer_declarator "*param_3" * identifier))) ))) (compound_statement "{\n  char *pcVar1;\n  int iVar2;\n  int iVar3;\n  Workqueue *this_00;\n  int iVar4;\n  Task *pTVar5;\n  undefined4 uVar6;\n  undefined3 in_register_00000018;\n  int *piVar7;\n  int *piVar8;\n  undefined *puVar9;\n  Task *apTStack_48 [2];\n  Workqueue *pWStack_40;\n  \n  if (*(code **)(*(int *)param_1 + 8) == (code *)PTR_is_runnable_004c4b34) {\n    pcVar1 = *(char **)(param_1 + 0x28);\n    if (*pcVar1 != '\0') {\n      if (*(int *)(pcVar1 + 4) < 1) goto LAB_002d3724;\nLAB_002d36ac:\n      if (*(int *)(param_1 + 4) == 0) {\n        if (*(int *)(pcVar1 + 0xc) == 0) {\n          *(Task **)(pcVar1 + 0xc) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\nLAB_002d36dc:\n          *(int *)(this + 0x18) = *(int *)(this + 0x18) + 1;\n          return 0;\n        }\n        if (*(int *)(*(int *)(pcVar1 + 0x10) + 4) == 0) {\n          *(Task **)(*(int *)(pcVar1 + 0x10) + 4) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\n          goto LAB_002d36dc;\n        }\n        goto LAB_002d386c;\n      }\n      goto LAB_002d3834;\n    }\n  }\n  else {\n    pcVar1 = (char *)(**(code **)(*(int *)param_1 + 8))(param_1);\n    if (pcVar1 != (char *)0x0) goto LAB_002d36ac;\nLAB_002d3724:\n    if (*param_3 == (Task *)0x0) {\n      if (((CONCAT31(in_register_00000018,param_2) == 0) || (param_1[0x20] != (Task)0x0)) ||\n         ((*(int *)(this + 4) == 0 && (*(int *)(this + 0xc) == 0)))) {\n        *param_3 = param_1;\n        return 1;\n      }\n      iVar3 = *(int *)(param_1 + 4);\n    }\n    else {\n      iVar3 = *(int *)(param_1 + 4);\n      if (param_1[0x20] != (Task)0x0) {\n        if (iVar3 == 0) {\n          if (*(int *)(this + 4) == 0) {\n            *(Task **)(this + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          if (*(int *)(*(int *)(this + 8) + 4) == 0) {\n            *(Task **)(*(int *)(this + 8) + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }\n        goto LAB_002d3834;\n      }\n    }\n    if (iVar3 == 0) {\n      if (*(int *)(this + 0xc) == 0) {\n        *(Task **)(this + 0xc) = param_1;\n        *(Task **)(this + 0x10) = param_1;\nLAB_002d3768:\n        (**(code **)(**(int **)(this + 0x20) + 0xc))(*(int **)(this + 0x20));\n        return 0;\n      }\n      if (*(int *)(*(int *)(this + 0x10) + 4) == 0) {\n        *(Task **)(*(int *)(this + 0x10) + 4) = param_1;\n        *(Task **)(this + 0x10) = param_1;\n        goto LAB_002d3768;\n      }\n      goto LAB_002d386c;\n    }\nLAB_002d3834:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x39bc,0x29,\n               PTR_s_in_a_linker_script_004c191c + 0x3aac);\n  }\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x7f8,0xab,\n             PTR_s_in_a_linker_script_004c191c + 0x3ad4);\nLAB_002d386c:\n  iVar4 = 0x5a;\n  piVar7 = (int *)(PTR_s_in_a_linker_script_004c191c + 0x3ab8);\n  this_00 = (Workqueue *)(PTR_s__s_004c1a50 + 0x970);\n  puVar9 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)();\n  iVar3 = *piVar7;\n  piVar8 = piVar7 + 1;\n  apTStack_48[0] = (Task *)0x0;\n  if (piVar8 == piVar7 + iVar3 + 1) {\n    apTStack_48[0] = (Task *)0x0;\n  }\n  else {\n    pWStack_40 = this;\n    do {\n      while (pcVar1 = (char *)*piVar8, *pcVar1 != '\0') {\n        iVar2 = *(int *)(pcVar1 + 4) + -1;\n        if (*(int *)(pcVar1 + 4) < 1) {\n          uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                            (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0xa1,\n                             *(int *)(puVar9 + 0x1ee098) + 0x3a6c);\n          return uVar6;\n        }\n        pcVar1[8] = '\0';\n        pcVar1[9] = '\0';\n        pcVar1[10] = '\0';\n        pcVar1[0xb] = '\0';\n        *(int *)(pcVar1 + 4) = iVar2;\n        if ((iVar2 == 0) && (pTVar5 = *(Task **)(pcVar1 + 0xc), pTVar5 != (Task *)0x0)) {\n          iVar3 = *(int *)(pTVar5 + 4);\n          if (*(Task **)(pcVar1 + 0x10) == pTVar5) goto LAB_002d3a40;\n          while (*(int *)(pcVar1 + 0xc) = iVar3, iVar3 != 0) {\n            *(undefined4 *)(pTVar5 + 4) = 0;\n            while( true ) {\n              *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n              return_or_queue(this_00,pTVar5,true,apTStack_48);\n              pTVar5 = *(Task **)(pcVar1 + 0xc);\n              if (pTVar5 == (Task *)0x0) goto LAB_002d398c;\n              iVar3 = *(int *)(pTVar5 + 4);\n              if (*(Task **)(pcVar1 + 0x10) != pTVar5) break;\nLAB_002d3a40:\n              if (iVar3 != 0) goto LAB_002d3a94;\n              pcVar1[0xc] = '\0';\n              pcVar1[0xd] = '\0';\n              pcVar1[0xe] = '\0';\n              pcVar1[0xf] = '\0';\n              pcVar1[0x10] = '\0';\n              pcVar1[0x11] = '\0';\n              pcVar1[0x12] = '\0';\n              pcVar1[0x13] = '\0';\n            }\n          }\nLAB_002d3a5c:\n          uVar6 = 0x5a;\n          goto LAB_002d3a60;\n        }\n        piVar8 = piVar8 + 1;\n        if (piVar8 == piVar7 + iVar3 + 1) {\n          return apTStack_48[0];\n        }\n      }\n      if (iVar4 != *(int *)(pcVar1 + 8)) {\n        uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                          (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0x84,\n                           *(int *)(puVar9 + 0x1ee098) + 0x3a5c);\n        return uVar6;\n      }\n      pcVar1[8] = '\0';\n      pcVar1[9] = '\0';\n      pcVar1[10] = '\0';\n      pcVar1[0xb] = '\0';\n      do {\n        pTVar5 = *(Task **)(pcVar1 + 0xc);\n        if (pTVar5 == (Task *)0x0) break;\n        iVar3 = *(int *)(pTVar5 + 4);\n        if (pTVar5 == *(Task **)(pcVar1 + 0x10)) {\n          if (iVar3 != 0) goto LAB_002d3a94;\n          pcVar1[0xc] = '\0';\n          pcVar1[0xd] = '\0';\n          pcVar1[0xe] = '\0';\n          pcVar1[0xf] = '\0';\n          pcVar1[0x10] = '\0';\n          pcVar1[0x11] = '\0';\n          pcVar1[0x12] = '\0';\n          pcVar1[0x13] = '\0';\n        }\n        else {\n          *(int *)(pcVar1 + 0xc) = iVar3;\n          if (iVar3 == 0) goto LAB_002d3a5c;\n          *(undefined4 *)(pTVar5 + 4) = 0;\n        }\n        *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n        iVar3 = return_or_queue(this_00,pTVar5,false,apTStack_48);\n      } while (iVar3 == 0);\nLAB_002d398c:\n      iVar3 = *piVar7;\n      piVar8 = piVar8 + 1;\n    } while (piVar8 != piVar7 + iVar3 + 1);\n  }\n  return apTStack_48[0];\nLAB_002d3a94:\n  uVar6 = 0x53;\nLAB_002d3a60:\n  uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                    (*(int *)(puVar9 + 0x1ee098) + 0x39bc,uVar6,*(int *)(puVar9 + 0x1ee098) + 0x3aa0\n                    );\n  return uVar6;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "Workqueue *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "Task *pTVar5;" type_identifier (pointer_declarator "*pTVar5" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "undefined3 in_register_00000018;" type_identifier identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "undefined *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "Task *apTStack_48 [2];" type_identifier (pointer_declarator "*apTStack_48 [2]" * (array_declarator "apTStack_48 [2]" identifier [ number_literal ])) ;) (declaration "Workqueue *pWStack_40;" type_identifier (pointer_declarator "*pWStack_40" * identifier) ;) (if_statement "if (*(code **)(*(int *)param_1 + 8) == (code *)PTR_is_runnable_004c4b34) {\n    pcVar1 = *(char **)(param_1 + 0x28);\n    if (*pcVar1 != '\0') {\n      if (*(int *)(pcVar1 + 4) < 1) goto LAB_002d3724;\nLAB_002d36ac:\n      if (*(int *)(param_1 + 4) == 0) {\n        if (*(int *)(pcVar1 + 0xc) == 0) {\n          *(Task **)(pcVar1 + 0xc) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\nLAB_002d36dc:\n          *(int *)(this + 0x18) = *(int *)(this + 0x18) + 1;\n          return 0;\n        }\n        if (*(int *)(*(int *)(pcVar1 + 0x10) + 4) == 0) {\n          *(Task **)(*(int *)(pcVar1 + 0x10) + 4) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\n          goto LAB_002d36dc;\n        }\n        goto LAB_002d386c;\n      }\n      goto LAB_002d3834;\n    }\n  }\n  else {\n    pcVar1 = (char *)(**(code **)(*(int *)param_1 + 8))(param_1);\n    if (pcVar1 != (char *)0x0) goto LAB_002d36ac;\nLAB_002d3724:\n    if (*param_3 == (Task *)0x0) {\n      if (((CONCAT31(in_register_00000018,param_2) == 0) || (param_1[0x20] != (Task)0x0)) ||\n         ((*(int *)(this + 4) == 0 && (*(int *)(this + 0xc) == 0)))) {\n        *param_3 = param_1;\n        return 1;\n      }\n      iVar3 = *(int *)(param_1 + 4);\n    }\n    else {\n      iVar3 = *(int *)(param_1 + 4);\n      if (param_1[0x20] != (Task)0x0) {\n        if (iVar3 == 0) {\n          if (*(int *)(this + 4) == 0) {\n            *(Task **)(this + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          if (*(int *)(*(int *)(this + 8) + 4) == 0) {\n            *(Task **)(*(int *)(this + 8) + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }\n        goto LAB_002d3834;\n      }\n    }\n    if (iVar3 == 0) {\n      if (*(int *)(this + 0xc) == 0) {\n        *(Task **)(this + 0xc) = param_1;\n        *(Task **)(this + 0x10) = param_1;\nLAB_002d3768:\n        (**(code **)(**(int **)(this + 0x20) + 0xc))(*(int **)(this + 0x20));\n        return 0;\n      }\n      if (*(int *)(*(int *)(this + 0x10) + 4) == 0) {\n        *(Task **)(*(int *)(this + 0x10) + 4) = param_1;\n        *(Task **)(this + 0x10) = param_1;\n        goto LAB_002d3768;\n      }\n      goto LAB_002d386c;\n    }\nLAB_002d3834:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x39bc,0x29,\n               PTR_s_in_a_linker_script_004c191c + 0x3aac);\n  }" if (parenthesized_expression "(*(code **)(*(int *)param_1 + 8) == (code *)PTR_is_runnable_004c4b34)" ( (binary_expression "*(code **)(*(int *)param_1 + 8) == (code *)PTR_is_runnable_004c4b34" (pointer_expression "*(code **)(*(int *)param_1 + 8)" * (cast_expression "(code **)(*(int *)param_1 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)param_1 + 8)" ( (binary_expression "*(int *)param_1 + 8" (pointer_expression "*(int *)param_1" * (cast_expression "(int *)param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == (cast_expression "(code *)PTR_is_runnable_004c4b34" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n    pcVar1 = *(char **)(param_1 + 0x28);\n    if (*pcVar1 != '\0') {\n      if (*(int *)(pcVar1 + 4) < 1) goto LAB_002d3724;\nLAB_002d36ac:\n      if (*(int *)(param_1 + 4) == 0) {\n        if (*(int *)(pcVar1 + 0xc) == 0) {\n          *(Task **)(pcVar1 + 0xc) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\nLAB_002d36dc:\n          *(int *)(this + 0x18) = *(int *)(this + 0x18) + 1;\n          return 0;\n        }\n        if (*(int *)(*(int *)(pcVar1 + 0x10) + 4) == 0) {\n          *(Task **)(*(int *)(pcVar1 + 0x10) + 4) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\n          goto LAB_002d36dc;\n        }\n        goto LAB_002d386c;\n      }\n      goto LAB_002d3834;\n    }\n  }" { (expression_statement "pcVar1 = *(char **)(param_1 + 0x28);" (assignment_expression "pcVar1 = *(char **)(param_1 + 0x28)" identifier = (pointer_expression "*(char **)(param_1 + 0x28)" * (cast_expression "(char **)(param_1 + 0x28)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (*pcVar1 != '\0') {\n      if (*(int *)(pcVar1 + 4) < 1) goto LAB_002d3724;\nLAB_002d36ac:\n      if (*(int *)(param_1 + 4) == 0) {\n        if (*(int *)(pcVar1 + 0xc) == 0) {\n          *(Task **)(pcVar1 + 0xc) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\nLAB_002d36dc:\n          *(int *)(this + 0x18) = *(int *)(this + 0x18) + 1;\n          return 0;\n        }\n        if (*(int *)(*(int *)(pcVar1 + 0x10) + 4) == 0) {\n          *(Task **)(*(int *)(pcVar1 + 0x10) + 4) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\n          goto LAB_002d36dc;\n        }\n        goto LAB_002d386c;\n      }\n      goto LAB_002d3834;\n    }" if (parenthesized_expression "(*pcVar1 != '\0')" ( (binary_expression "*pcVar1 != '\0'" (pointer_expression "*pcVar1" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if (*(int *)(pcVar1 + 4) < 1) goto LAB_002d3724;\nLAB_002d36ac:\n      if (*(int *)(param_1 + 4) == 0) {\n        if (*(int *)(pcVar1 + 0xc) == 0) {\n          *(Task **)(pcVar1 + 0xc) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\nLAB_002d36dc:\n          *(int *)(this + 0x18) = *(int *)(this + 0x18) + 1;\n          return 0;\n        }\n        if (*(int *)(*(int *)(pcVar1 + 0x10) + 4) == 0) {\n          *(Task **)(*(int *)(pcVar1 + 0x10) + 4) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\n          goto LAB_002d36dc;\n        }\n        goto LAB_002d386c;\n      }\n      goto LAB_002d3834;\n    }" { (if_statement "if (*(int *)(pcVar1 + 4) < 1) goto LAB_002d3724;" if (parenthesized_expression "(*(int *)(pcVar1 + 4) < 1)" ( (binary_expression "*(int *)(pcVar1 + 4) < 1" (pointer_expression "*(int *)(pcVar1 + 4)" * (cast_expression "(int *)(pcVar1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar1 + 4)" ( (binary_expression "pcVar1 + 4" identifier + number_literal) )))) < number_literal) )) (goto_statement "goto LAB_002d3724;" goto statement_identifier ;)) (labeled_statement "LAB_002d36ac:\n      if (*(int *)(param_1 + 4) == 0) {\n        if (*(int *)(pcVar1 + 0xc) == 0) {\n          *(Task **)(pcVar1 + 0xc) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\nLAB_002d36dc:\n          *(int *)(this + 0x18) = *(int *)(this + 0x18) + 1;\n          return 0;\n        }\n        if (*(int *)(*(int *)(pcVar1 + 0x10) + 4) == 0) {\n          *(Task **)(*(int *)(pcVar1 + 0x10) + 4) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\n          goto LAB_002d36dc;\n        }\n        goto LAB_002d386c;\n      }" statement_identifier : (if_statement "if (*(int *)(param_1 + 4) == 0) {\n        if (*(int *)(pcVar1 + 0xc) == 0) {\n          *(Task **)(pcVar1 + 0xc) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\nLAB_002d36dc:\n          *(int *)(this + 0x18) = *(int *)(this + 0x18) + 1;\n          return 0;\n        }\n        if (*(int *)(*(int *)(pcVar1 + 0x10) + 4) == 0) {\n          *(Task **)(*(int *)(pcVar1 + 0x10) + 4) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\n          goto LAB_002d36dc;\n        }\n        goto LAB_002d386c;\n      }" if (parenthesized_expression "(*(int *)(param_1 + 4) == 0)" ( (binary_expression "*(int *)(param_1 + 4) == 0" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        if (*(int *)(pcVar1 + 0xc) == 0) {\n          *(Task **)(pcVar1 + 0xc) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\nLAB_002d36dc:\n          *(int *)(this + 0x18) = *(int *)(this + 0x18) + 1;\n          return 0;\n        }\n        if (*(int *)(*(int *)(pcVar1 + 0x10) + 4) == 0) {\n          *(Task **)(*(int *)(pcVar1 + 0x10) + 4) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\n          goto LAB_002d36dc;\n        }\n        goto LAB_002d386c;\n      }" { (if_statement "if (*(int *)(pcVar1 + 0xc) == 0) {\n          *(Task **)(pcVar1 + 0xc) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\nLAB_002d36dc:\n          *(int *)(this + 0x18) = *(int *)(this + 0x18) + 1;\n          return 0;\n        }" if (parenthesized_expression "(*(int *)(pcVar1 + 0xc) == 0)" ( (binary_expression "*(int *)(pcVar1 + 0xc) == 0" (pointer_expression "*(int *)(pcVar1 + 0xc)" * (cast_expression "(int *)(pcVar1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar1 + 0xc)" ( (binary_expression "pcVar1 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          *(Task **)(pcVar1 + 0xc) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\nLAB_002d36dc:\n          *(int *)(this + 0x18) = *(int *)(this + 0x18) + 1;\n          return 0;\n        }" { (expression_statement "*(Task **)(pcVar1 + 0xc) = param_1;" (assignment_expression "*(Task **)(pcVar1 + 0xc) = param_1" (pointer_expression "*(Task **)(pcVar1 + 0xc)" * (cast_expression "(Task **)(pcVar1 + 0xc)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar1 + 0xc)" ( (binary_expression "pcVar1 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Task **)(pcVar1 + 0x10) = param_1;" (assignment_expression "*(Task **)(pcVar1 + 0x10) = param_1" (pointer_expression "*(Task **)(pcVar1 + 0x10)" * (cast_expression "(Task **)(pcVar1 + 0x10)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar1 + 0x10)" ( (binary_expression "pcVar1 + 0x10" identifier + number_literal) )))) = identifier) ;) (labeled_statement "LAB_002d36dc:\n          *(int *)(this + 0x18) = *(int *)(this + 0x18) + 1;" statement_identifier : (expression_statement "*(int *)(this + 0x18) = *(int *)(this + 0x18) + 1;" (assignment_expression "*(int *)(this + 0x18) = *(int *)(this + 0x18) + 1" (pointer_expression "*(int *)(this + 0x18)" * (cast_expression "(int *)(this + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x18)" ( (binary_expression "this + 0x18" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 0x18) + 1" (pointer_expression "*(int *)(this + 0x18)" * (cast_expression "(int *)(this + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x18)" ( (binary_expression "this + 0x18" identifier + number_literal) )))) + number_literal)) ;)) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (*(int *)(*(int *)(pcVar1 + 0x10) + 4) == 0) {\n          *(Task **)(*(int *)(pcVar1 + 0x10) + 4) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\n          goto LAB_002d36dc;\n        }" if (parenthesized_expression "(*(int *)(*(int *)(pcVar1 + 0x10) + 4) == 0)" ( (binary_expression "*(int *)(*(int *)(pcVar1 + 0x10) + 4) == 0" (pointer_expression "*(int *)(*(int *)(pcVar1 + 0x10) + 4)" * (cast_expression "(int *)(*(int *)(pcVar1 + 0x10) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar1 + 0x10) + 4)" ( (binary_expression "*(int *)(pcVar1 + 0x10) + 4" (pointer_expression "*(int *)(pcVar1 + 0x10)" * (cast_expression "(int *)(pcVar1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar1 + 0x10)" ( (binary_expression "pcVar1 + 0x10" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n          *(Task **)(*(int *)(pcVar1 + 0x10) + 4) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\n          goto LAB_002d36dc;\n        }" { (expression_statement "*(Task **)(*(int *)(pcVar1 + 0x10) + 4) = param_1;" (assignment_expression "*(Task **)(*(int *)(pcVar1 + 0x10) + 4) = param_1" (pointer_expression "*(Task **)(*(int *)(pcVar1 + 0x10) + 4)" * (cast_expression "(Task **)(*(int *)(pcVar1 + 0x10) + 4)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcVar1 + 0x10) + 4)" ( (binary_expression "*(int *)(pcVar1 + 0x10) + 4" (pointer_expression "*(int *)(pcVar1 + 0x10)" * (cast_expression "(int *)(pcVar1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar1 + 0x10)" ( (binary_expression "pcVar1 + 0x10" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) (expression_statement "*(Task **)(pcVar1 + 0x10) = param_1;" (assignment_expression "*(Task **)(pcVar1 + 0x10) = param_1" (pointer_expression "*(Task **)(pcVar1 + 0x10)" * (cast_expression "(Task **)(pcVar1 + 0x10)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar1 + 0x10)" ( (binary_expression "pcVar1 + 0x10" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_002d36dc;" goto statement_identifier ;) })) (goto_statement "goto LAB_002d386c;" goto statement_identifier ;) }))) (goto_statement "goto LAB_002d3834;" goto statement_identifier ;) })) }) (else_clause "else {\n    pcVar1 = (char *)(**(code **)(*(int *)param_1 + 8))(param_1);\n    if (pcVar1 != (char *)0x0) goto LAB_002d36ac;\nLAB_002d3724:\n    if (*param_3 == (Task *)0x0) {\n      if (((CONCAT31(in_register_00000018,param_2) == 0) || (param_1[0x20] != (Task)0x0)) ||\n         ((*(int *)(this + 4) == 0 && (*(int *)(this + 0xc) == 0)))) {\n        *param_3 = param_1;\n        return 1;\n      }\n      iVar3 = *(int *)(param_1 + 4);\n    }\n    else {\n      iVar3 = *(int *)(param_1 + 4);\n      if (param_1[0x20] != (Task)0x0) {\n        if (iVar3 == 0) {\n          if (*(int *)(this + 4) == 0) {\n            *(Task **)(this + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          if (*(int *)(*(int *)(this + 8) + 4) == 0) {\n            *(Task **)(*(int *)(this + 8) + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }\n        goto LAB_002d3834;\n      }\n    }\n    if (iVar3 == 0) {\n      if (*(int *)(this + 0xc) == 0) {\n        *(Task **)(this + 0xc) = param_1;\n        *(Task **)(this + 0x10) = param_1;\nLAB_002d3768:\n        (**(code **)(**(int **)(this + 0x20) + 0xc))(*(int **)(this + 0x20));\n        return 0;\n      }\n      if (*(int *)(*(int *)(this + 0x10) + 4) == 0) {\n        *(Task **)(*(int *)(this + 0x10) + 4) = param_1;\n        *(Task **)(this + 0x10) = param_1;\n        goto LAB_002d3768;\n      }\n      goto LAB_002d386c;\n    }\nLAB_002d3834:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x39bc,0x29,\n               PTR_s_in_a_linker_script_004c191c + 0x3aac);\n  }" else (compound_statement "{\n    pcVar1 = (char *)(**(code **)(*(int *)param_1 + 8))(param_1);\n    if (pcVar1 != (char *)0x0) goto LAB_002d36ac;\nLAB_002d3724:\n    if (*param_3 == (Task *)0x0) {\n      if (((CONCAT31(in_register_00000018,param_2) == 0) || (param_1[0x20] != (Task)0x0)) ||\n         ((*(int *)(this + 4) == 0 && (*(int *)(this + 0xc) == 0)))) {\n        *param_3 = param_1;\n        return 1;\n      }\n      iVar3 = *(int *)(param_1 + 4);\n    }\n    else {\n      iVar3 = *(int *)(param_1 + 4);\n      if (param_1[0x20] != (Task)0x0) {\n        if (iVar3 == 0) {\n          if (*(int *)(this + 4) == 0) {\n            *(Task **)(this + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          if (*(int *)(*(int *)(this + 8) + 4) == 0) {\n            *(Task **)(*(int *)(this + 8) + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }\n        goto LAB_002d3834;\n      }\n    }\n    if (iVar3 == 0) {\n      if (*(int *)(this + 0xc) == 0) {\n        *(Task **)(this + 0xc) = param_1;\n        *(Task **)(this + 0x10) = param_1;\nLAB_002d3768:\n        (**(code **)(**(int **)(this + 0x20) + 0xc))(*(int **)(this + 0x20));\n        return 0;\n      }\n      if (*(int *)(*(int *)(this + 0x10) + 4) == 0) {\n        *(Task **)(*(int *)(this + 0x10) + 4) = param_1;\n        *(Task **)(this + 0x10) = param_1;\n        goto LAB_002d3768;\n      }\n      goto LAB_002d386c;\n    }\nLAB_002d3834:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x39bc,0x29,\n               PTR_s_in_a_linker_script_004c191c + 0x3aac);\n  }" { (expression_statement "pcVar1 = (char *)(**(code **)(*(int *)param_1 + 8))(param_1);" (assignment_expression "pcVar1 = (char *)(**(code **)(*(int *)param_1 + 8))(param_1)" identifier = (cast_expression "(char *)(**(code **)(*(int *)param_1 + 8))(param_1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*(int *)param_1 + 8))(param_1)" (parenthesized_expression "(**(code **)(*(int *)param_1 + 8))" ( (pointer_expression "**(code **)(*(int *)param_1 + 8)" * (pointer_expression "*(code **)(*(int *)param_1 + 8)" * (cast_expression "(code **)(*(int *)param_1 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)param_1 + 8)" ( (binary_expression "*(int *)param_1 + 8" (pointer_expression "*(int *)param_1" * (cast_expression "(int *)param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(param_1)" ( identifier ))))) ;) (if_statement "if (pcVar1 != (char *)0x0) goto LAB_002d36ac;" if (parenthesized_expression "(pcVar1 != (char *)0x0)" ( (binary_expression "pcVar1 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_002d36ac;" goto statement_identifier ;)) (labeled_statement "LAB_002d3724:\n    if (*param_3 == (Task *)0x0) {\n      if (((CONCAT31(in_register_00000018,param_2) == 0) || (param_1[0x20] != (Task)0x0)) ||\n         ((*(int *)(this + 4) == 0 && (*(int *)(this + 0xc) == 0)))) {\n        *param_3 = param_1;\n        return 1;\n      }\n      iVar3 = *(int *)(param_1 + 4);\n    }\n    else {\n      iVar3 = *(int *)(param_1 + 4);\n      if (param_1[0x20] != (Task)0x0) {\n        if (iVar3 == 0) {\n          if (*(int *)(this + 4) == 0) {\n            *(Task **)(this + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          if (*(int *)(*(int *)(this + 8) + 4) == 0) {\n            *(Task **)(*(int *)(this + 8) + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }\n        goto LAB_002d3834;\n      }\n    }" statement_identifier : (if_statement "if (*param_3 == (Task *)0x0) {\n      if (((CONCAT31(in_register_00000018,param_2) == 0) || (param_1[0x20] != (Task)0x0)) ||\n         ((*(int *)(this + 4) == 0 && (*(int *)(this + 0xc) == 0)))) {\n        *param_3 = param_1;\n        return 1;\n      }\n      iVar3 = *(int *)(param_1 + 4);\n    }\n    else {\n      iVar3 = *(int *)(param_1 + 4);\n      if (param_1[0x20] != (Task)0x0) {\n        if (iVar3 == 0) {\n          if (*(int *)(this + 4) == 0) {\n            *(Task **)(this + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          if (*(int *)(*(int *)(this + 8) + 4) == 0) {\n            *(Task **)(*(int *)(this + 8) + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }\n        goto LAB_002d3834;\n      }\n    }" if (parenthesized_expression "(*param_3 == (Task *)0x0)" ( (binary_expression "*param_3 == (Task *)0x0" (pointer_expression "*param_3" * identifier) == (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (((CONCAT31(in_register_00000018,param_2) == 0) || (param_1[0x20] != (Task)0x0)) ||\n         ((*(int *)(this + 4) == 0 && (*(int *)(this + 0xc) == 0)))) {\n        *param_3 = param_1;\n        return 1;\n      }\n      iVar3 = *(int *)(param_1 + 4);\n    }" { (if_statement "if (((CONCAT31(in_register_00000018,param_2) == 0) || (param_1[0x20] != (Task)0x0)) ||\n         ((*(int *)(this + 4) == 0 && (*(int *)(this + 0xc) == 0)))) {\n        *param_3 = param_1;\n        return 1;\n      }" if (parenthesized_expression "(((CONCAT31(in_register_00000018,param_2) == 0) || (param_1[0x20] != (Task)0x0)) ||\n         ((*(int *)(this + 4) == 0 && (*(int *)(this + 0xc) == 0))))" ( (binary_expression "((CONCAT31(in_register_00000018,param_2) == 0) || (param_1[0x20] != (Task)0x0)) ||\n         ((*(int *)(this + 4) == 0 && (*(int *)(this + 0xc) == 0)))" (parenthesized_expression "((CONCAT31(in_register_00000018,param_2) == 0) || (param_1[0x20] != (Task)0x0))" ( (binary_expression "(CONCAT31(in_register_00000018,param_2) == 0) || (param_1[0x20] != (Task)0x0)" (parenthesized_expression "(CONCAT31(in_register_00000018,param_2) == 0)" ( (binary_expression "CONCAT31(in_register_00000018,param_2) == 0" (call_expression "CONCAT31(in_register_00000018,param_2)" identifier (argument_list "(in_register_00000018,param_2)" ( identifier , identifier ))) == number_literal) )) || (parenthesized_expression "(param_1[0x20] != (Task)0x0)" ( (binary_expression "param_1[0x20] != (Task)0x0" (subscript_expression "param_1[0x20]" identifier [ number_literal ]) != (cast_expression "(Task)0x0" ( (type_descriptor "Task" type_identifier) ) number_literal)) ))) )) || (parenthesized_expression "((*(int *)(this + 4) == 0 && (*(int *)(this + 0xc) == 0)))" ( (parenthesized_expression "(*(int *)(this + 4) == 0 && (*(int *)(this + 0xc) == 0))" ( (binary_expression "*(int *)(this + 4) == 0 && (*(int *)(this + 0xc) == 0)" (binary_expression "*(int *)(this + 4) == 0" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) == number_literal) && (parenthesized_expression "(*(int *)(this + 0xc) == 0)" ( (binary_expression "*(int *)(this + 0xc) == 0" (pointer_expression "*(int *)(this + 0xc)" * (cast_expression "(int *)(this + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0xc)" ( (binary_expression "this + 0xc" identifier + number_literal) )))) == number_literal) ))) )) ))) )) (compound_statement "{\n        *param_3 = param_1;\n        return 1;\n      }" { (expression_statement "*param_3 = param_1;" (assignment_expression "*param_3 = param_1" (pointer_expression "*param_3" * identifier) = identifier) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "iVar3 = *(int *)(param_1 + 4);" (assignment_expression "iVar3 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      iVar3 = *(int *)(param_1 + 4);\n      if (param_1[0x20] != (Task)0x0) {\n        if (iVar3 == 0) {\n          if (*(int *)(this + 4) == 0) {\n            *(Task **)(this + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          if (*(int *)(*(int *)(this + 8) + 4) == 0) {\n            *(Task **)(*(int *)(this + 8) + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }\n        goto LAB_002d3834;\n      }\n    }" else (compound_statement "{\n      iVar3 = *(int *)(param_1 + 4);\n      if (param_1[0x20] != (Task)0x0) {\n        if (iVar3 == 0) {\n          if (*(int *)(this + 4) == 0) {\n            *(Task **)(this + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          if (*(int *)(*(int *)(this + 8) + 4) == 0) {\n            *(Task **)(*(int *)(this + 8) + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }\n        goto LAB_002d3834;\n      }\n    }" { (expression_statement "iVar3 = *(int *)(param_1 + 4);" (assignment_expression "iVar3 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (if_statement "if (param_1[0x20] != (Task)0x0) {\n        if (iVar3 == 0) {\n          if (*(int *)(this + 4) == 0) {\n            *(Task **)(this + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          if (*(int *)(*(int *)(this + 8) + 4) == 0) {\n            *(Task **)(*(int *)(this + 8) + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }\n        goto LAB_002d3834;\n      }" if (parenthesized_expression "(param_1[0x20] != (Task)0x0)" ( (binary_expression "param_1[0x20] != (Task)0x0" (subscript_expression "param_1[0x20]" identifier [ number_literal ]) != (cast_expression "(Task)0x0" ( (type_descriptor "Task" type_identifier) ) number_literal)) )) (compound_statement "{\n        if (iVar3 == 0) {\n          if (*(int *)(this + 4) == 0) {\n            *(Task **)(this + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          if (*(int *)(*(int *)(this + 8) + 4) == 0) {\n            *(Task **)(*(int *)(this + 8) + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }\n        goto LAB_002d3834;\n      }" { (if_statement "if (iVar3 == 0) {\n          if (*(int *)(this + 4) == 0) {\n            *(Task **)(this + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          if (*(int *)(*(int *)(this + 8) + 4) == 0) {\n            *(Task **)(*(int *)(this + 8) + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          if (*(int *)(this + 4) == 0) {\n            *(Task **)(this + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          if (*(int *)(*(int *)(this + 8) + 4) == 0) {\n            *(Task **)(*(int *)(this + 8) + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }" { (if_statement "if (*(int *)(this + 4) == 0) {\n            *(Task **)(this + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }" if (parenthesized_expression "(*(int *)(this + 4) == 0)" ( (binary_expression "*(int *)(this + 4) == 0" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n            *(Task **)(this + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }" { (expression_statement "*(Task **)(this + 4) = param_1;" (assignment_expression "*(Task **)(this + 4) = param_1" (pointer_expression "*(Task **)(this + 4)" * (cast_expression "(Task **)(this + 4)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Task **)(this + 8) = param_1;" (assignment_expression "*(Task **)(this + 8) = param_1" (pointer_expression "*(Task **)(this + 8)" * (cast_expression "(Task **)(this + 8)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_002d3768;" goto statement_identifier ;) })) (if_statement "if (*(int *)(*(int *)(this + 8) + 4) == 0) {\n            *(Task **)(*(int *)(this + 8) + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }" if (parenthesized_expression "(*(int *)(*(int *)(this + 8) + 4) == 0)" ( (binary_expression "*(int *)(*(int *)(this + 8) + 4) == 0" (pointer_expression "*(int *)(*(int *)(this + 8) + 4)" * (cast_expression "(int *)(*(int *)(this + 8) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(this + 8) + 4)" ( (binary_expression "*(int *)(this + 8) + 4" (pointer_expression "*(int *)(this + 8)" * (cast_expression "(int *)(this + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n            *(Task **)(*(int *)(this + 8) + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }" { (expression_statement "*(Task **)(*(int *)(this + 8) + 4) = param_1;" (assignment_expression "*(Task **)(*(int *)(this + 8) + 4) = param_1" (pointer_expression "*(Task **)(*(int *)(this + 8) + 4)" * (cast_expression "(Task **)(*(int *)(this + 8) + 4)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(this + 8) + 4)" ( (binary_expression "*(int *)(this + 8) + 4" (pointer_expression "*(int *)(this + 8)" * (cast_expression "(int *)(this + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) (expression_statement "*(Task **)(this + 8) = param_1;" (assignment_expression "*(Task **)(this + 8) = param_1" (pointer_expression "*(Task **)(this + 8)" * (cast_expression "(Task **)(this + 8)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_002d3768;" goto statement_identifier ;) })) (goto_statement "goto LAB_002d386c;" goto statement_identifier ;) })) (goto_statement "goto LAB_002d3834;" goto statement_identifier ;) })) })))) (if_statement "if (iVar3 == 0) {\n      if (*(int *)(this + 0xc) == 0) {\n        *(Task **)(this + 0xc) = param_1;\n        *(Task **)(this + 0x10) = param_1;\nLAB_002d3768:\n        (**(code **)(**(int **)(this + 0x20) + 0xc))(*(int **)(this + 0x20));\n        return 0;\n      }\n      if (*(int *)(*(int *)(this + 0x10) + 4) == 0) {\n        *(Task **)(*(int *)(this + 0x10) + 4) = param_1;\n        *(Task **)(this + 0x10) = param_1;\n        goto LAB_002d3768;\n      }\n      goto LAB_002d386c;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      if (*(int *)(this + 0xc) == 0) {\n        *(Task **)(this + 0xc) = param_1;\n        *(Task **)(this + 0x10) = param_1;\nLAB_002d3768:\n        (**(code **)(**(int **)(this + 0x20) + 0xc))(*(int **)(this + 0x20));\n        return 0;\n      }\n      if (*(int *)(*(int *)(this + 0x10) + 4) == 0) {\n        *(Task **)(*(int *)(this + 0x10) + 4) = param_1;\n        *(Task **)(this + 0x10) = param_1;\n        goto LAB_002d3768;\n      }\n      goto LAB_002d386c;\n    }" { (if_statement "if (*(int *)(this + 0xc) == 0) {\n        *(Task **)(this + 0xc) = param_1;\n        *(Task **)(this + 0x10) = param_1;\nLAB_002d3768:\n        (**(code **)(**(int **)(this + 0x20) + 0xc))(*(int **)(this + 0x20));\n        return 0;\n      }" if (parenthesized_expression "(*(int *)(this + 0xc) == 0)" ( (binary_expression "*(int *)(this + 0xc) == 0" (pointer_expression "*(int *)(this + 0xc)" * (cast_expression "(int *)(this + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0xc)" ( (binary_expression "this + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        *(Task **)(this + 0xc) = param_1;\n        *(Task **)(this + 0x10) = param_1;\nLAB_002d3768:\n        (**(code **)(**(int **)(this + 0x20) + 0xc))(*(int **)(this + 0x20));\n        return 0;\n      }" { (expression_statement "*(Task **)(this + 0xc) = param_1;" (assignment_expression "*(Task **)(this + 0xc) = param_1" (pointer_expression "*(Task **)(this + 0xc)" * (cast_expression "(Task **)(this + 0xc)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0xc)" ( (binary_expression "this + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Task **)(this + 0x10) = param_1;" (assignment_expression "*(Task **)(this + 0x10) = param_1" (pointer_expression "*(Task **)(this + 0x10)" * (cast_expression "(Task **)(this + 0x10)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x10)" ( (binary_expression "this + 0x10" identifier + number_literal) )))) = identifier) ;) (labeled_statement "LAB_002d3768:\n        (**(code **)(**(int **)(this + 0x20) + 0xc))(*(int **)(this + 0x20));" statement_identifier : (expression_statement "(**(code **)(**(int **)(this + 0x20) + 0xc))(*(int **)(this + 0x20));" (call_expression "(**(code **)(**(int **)(this + 0x20) + 0xc))(*(int **)(this + 0x20))" (parenthesized_expression "(**(code **)(**(int **)(this + 0x20) + 0xc))" ( (pointer_expression "**(code **)(**(int **)(this + 0x20) + 0xc)" * (pointer_expression "*(code **)(**(int **)(this + 0x20) + 0xc)" * (cast_expression "(code **)(**(int **)(this + 0x20) + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(this + 0x20) + 0xc)" ( (binary_expression "**(int **)(this + 0x20) + 0xc" (pointer_expression "**(int **)(this + 0x20)" * (pointer_expression "*(int **)(this + 0x20)" * (cast_expression "(int **)(this + 0x20)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x20)" ( (binary_expression "this + 0x20" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(this + 0x20))" ( (pointer_expression "*(int **)(this + 0x20)" * (cast_expression "(int **)(this + 0x20)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x20)" ( (binary_expression "this + 0x20" identifier + number_literal) )))) ))) ;)) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (*(int *)(*(int *)(this + 0x10) + 4) == 0) {\n        *(Task **)(*(int *)(this + 0x10) + 4) = param_1;\n        *(Task **)(this + 0x10) = param_1;\n        goto LAB_002d3768;\n      }" if (parenthesized_expression "(*(int *)(*(int *)(this + 0x10) + 4) == 0)" ( (binary_expression "*(int *)(*(int *)(this + 0x10) + 4) == 0" (pointer_expression "*(int *)(*(int *)(this + 0x10) + 4)" * (cast_expression "(int *)(*(int *)(this + 0x10) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(this + 0x10) + 4)" ( (binary_expression "*(int *)(this + 0x10) + 4" (pointer_expression "*(int *)(this + 0x10)" * (cast_expression "(int *)(this + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x10)" ( (binary_expression "this + 0x10" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n        *(Task **)(*(int *)(this + 0x10) + 4) = param_1;\n        *(Task **)(this + 0x10) = param_1;\n        goto LAB_002d3768;\n      }" { (expression_statement "*(Task **)(*(int *)(this + 0x10) + 4) = param_1;" (assignment_expression "*(Task **)(*(int *)(this + 0x10) + 4) = param_1" (pointer_expression "*(Task **)(*(int *)(this + 0x10) + 4)" * (cast_expression "(Task **)(*(int *)(this + 0x10) + 4)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(this + 0x10) + 4)" ( (binary_expression "*(int *)(this + 0x10) + 4" (pointer_expression "*(int *)(this + 0x10)" * (cast_expression "(int *)(this + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x10)" ( (binary_expression "this + 0x10" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) (expression_statement "*(Task **)(this + 0x10) = param_1;" (assignment_expression "*(Task **)(this + 0x10) = param_1" (pointer_expression "*(Task **)(this + 0x10)" * (cast_expression "(Task **)(this + 0x10)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x10)" ( (binary_expression "this + 0x10" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_002d3768;" goto statement_identifier ;) })) (goto_statement "goto LAB_002d386c;" goto statement_identifier ;) })) (labeled_statement "LAB_002d3834:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x39bc,0x29,\n               PTR_s_in_a_linker_script_004c191c + 0x3aac);" statement_identifier : (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x39bc,0x29,\n               PTR_s_in_a_linker_script_004c191c + 0x3aac);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x39bc,0x29,\n               PTR_s_in_a_linker_script_004c191c + 0x3aac)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_in_a_linker_script_004c191c + 0x39bc,0x29,\n               PTR_s_in_a_linker_script_004c191c + 0x3aac)" ( (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x39bc" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x3aac" identifier + number_literal) ))) ;)) }))) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x7f8,0xab,\n             PTR_s_in_a_linker_script_004c191c + 0x3ad4);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x7f8,0xab,\n             PTR_s_in_a_linker_script_004c191c + 0x3ad4)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x7f8,0xab,\n             PTR_s_in_a_linker_script_004c191c + 0x3ad4)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + -0x7f8" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x3ad4" identifier + number_literal) ))) ;) (labeled_statement "LAB_002d386c:\n  iVar4 = 0x5a;" statement_identifier : (expression_statement "iVar4 = 0x5a;" (assignment_expression "iVar4 = 0x5a" identifier = number_literal) ;)) (expression_statement "piVar7 = (int *)(PTR_s_in_a_linker_script_004c191c + 0x3ab8);" (assignment_expression "piVar7 = (int *)(PTR_s_in_a_linker_script_004c191c + 0x3ab8)" identifier = (cast_expression "(int *)(PTR_s_in_a_linker_script_004c191c + 0x3ab8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_in_a_linker_script_004c191c + 0x3ab8)" ( (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x3ab8" identifier + number_literal) )))) ;) (expression_statement "this_00 = (Workqueue *)(PTR_s__s_004c1a50 + 0x970);" (assignment_expression "this_00 = (Workqueue *)(PTR_s__s_004c1a50 + 0x970)" identifier = (cast_expression "(Workqueue *)(PTR_s__s_004c1a50 + 0x970)" ( (type_descriptor "Workqueue *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s__s_004c1a50 + 0x970)" ( (binary_expression "PTR_s__s_004c1a50 + 0x970" identifier + number_literal) )))) ;) (expression_statement "puVar9 = PTR_do_gold_unreachable_004c1a30;" (assignment_expression "puVar9 = PTR_do_gold_unreachable_004c1a30" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)();" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)()" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar3 = *piVar7;" (assignment_expression "iVar3 = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;) (expression_statement "piVar8 = piVar7 + 1;" (assignment_expression "piVar8 = piVar7 + 1" identifier = (binary_expression "piVar7 + 1" identifier + number_literal)) ;) (expression_statement "apTStack_48[0] = (Task *)0x0;" (assignment_expression "apTStack_48[0] = (Task *)0x0" (subscript_expression "apTStack_48[0]" identifier [ number_literal ]) = (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (piVar8 == piVar7 + iVar3 + 1) {\n    apTStack_48[0] = (Task *)0x0;\n  }\n  else {\n    pWStack_40 = this;\n    do {\n      while (pcVar1 = (char *)*piVar8, *pcVar1 != '\0') {\n        iVar2 = *(int *)(pcVar1 + 4) + -1;\n        if (*(int *)(pcVar1 + 4) < 1) {\n          uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                            (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0xa1,\n                             *(int *)(puVar9 + 0x1ee098) + 0x3a6c);\n          return uVar6;\n        }\n        pcVar1[8] = '\0';\n        pcVar1[9] = '\0';\n        pcVar1[10] = '\0';\n        pcVar1[0xb] = '\0';\n        *(int *)(pcVar1 + 4) = iVar2;\n        if ((iVar2 == 0) && (pTVar5 = *(Task **)(pcVar1 + 0xc), pTVar5 != (Task *)0x0)) {\n          iVar3 = *(int *)(pTVar5 + 4);\n          if (*(Task **)(pcVar1 + 0x10) == pTVar5) goto LAB_002d3a40;\n          while (*(int *)(pcVar1 + 0xc) = iVar3, iVar3 != 0) {\n            *(undefined4 *)(pTVar5 + 4) = 0;\n            while( true ) {\n              *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n              return_or_queue(this_00,pTVar5,true,apTStack_48);\n              pTVar5 = *(Task **)(pcVar1 + 0xc);\n              if (pTVar5 == (Task *)0x0) goto LAB_002d398c;\n              iVar3 = *(int *)(pTVar5 + 4);\n              if (*(Task **)(pcVar1 + 0x10) != pTVar5) break;\nLAB_002d3a40:\n              if (iVar3 != 0) goto LAB_002d3a94;\n              pcVar1[0xc] = '\0';\n              pcVar1[0xd] = '\0';\n              pcVar1[0xe] = '\0';\n              pcVar1[0xf] = '\0';\n              pcVar1[0x10] = '\0';\n              pcVar1[0x11] = '\0';\n              pcVar1[0x12] = '\0';\n              pcVar1[0x13] = '\0';\n            }\n          }\nLAB_002d3a5c:\n          uVar6 = 0x5a;\n          goto LAB_002d3a60;\n        }\n        piVar8 = piVar8 + 1;\n        if (piVar8 == piVar7 + iVar3 + 1) {\n          return apTStack_48[0];\n        }\n      }\n      if (iVar4 != *(int *)(pcVar1 + 8)) {\n        uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                          (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0x84,\n                           *(int *)(puVar9 + 0x1ee098) + 0x3a5c);\n        return uVar6;\n      }\n      pcVar1[8] = '\0';\n      pcVar1[9] = '\0';\n      pcVar1[10] = '\0';\n      pcVar1[0xb] = '\0';\n      do {\n        pTVar5 = *(Task **)(pcVar1 + 0xc);\n        if (pTVar5 == (Task *)0x0) break;\n        iVar3 = *(int *)(pTVar5 + 4);\n        if (pTVar5 == *(Task **)(pcVar1 + 0x10)) {\n          if (iVar3 != 0) goto LAB_002d3a94;\n          pcVar1[0xc] = '\0';\n          pcVar1[0xd] = '\0';\n          pcVar1[0xe] = '\0';\n          pcVar1[0xf] = '\0';\n          pcVar1[0x10] = '\0';\n          pcVar1[0x11] = '\0';\n          pcVar1[0x12] = '\0';\n          pcVar1[0x13] = '\0';\n        }\n        else {\n          *(int *)(pcVar1 + 0xc) = iVar3;\n          if (iVar3 == 0) goto LAB_002d3a5c;\n          *(undefined4 *)(pTVar5 + 4) = 0;\n        }\n        *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n        iVar3 = return_or_queue(this_00,pTVar5,false,apTStack_48);\n      } while (iVar3 == 0);\nLAB_002d398c:\n      iVar3 = *piVar7;\n      piVar8 = piVar8 + 1;\n    } while (piVar8 != piVar7 + iVar3 + 1);\n  }" if (parenthesized_expression "(piVar8 == piVar7 + iVar3 + 1)" ( (binary_expression "piVar8 == piVar7 + iVar3 + 1" identifier == (binary_expression "piVar7 + iVar3 + 1" (binary_expression "piVar7 + iVar3" identifier + identifier) + number_literal)) )) (compound_statement "{\n    apTStack_48[0] = (Task *)0x0;\n  }" { (expression_statement "apTStack_48[0] = (Task *)0x0;" (assignment_expression "apTStack_48[0] = (Task *)0x0" (subscript_expression "apTStack_48[0]" identifier [ number_literal ]) = (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    pWStack_40 = this;\n    do {\n      while (pcVar1 = (char *)*piVar8, *pcVar1 != '\0') {\n        iVar2 = *(int *)(pcVar1 + 4) + -1;\n        if (*(int *)(pcVar1 + 4) < 1) {\n          uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                            (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0xa1,\n                             *(int *)(puVar9 + 0x1ee098) + 0x3a6c);\n          return uVar6;\n        }\n        pcVar1[8] = '\0';\n        pcVar1[9] = '\0';\n        pcVar1[10] = '\0';\n        pcVar1[0xb] = '\0';\n        *(int *)(pcVar1 + 4) = iVar2;\n        if ((iVar2 == 0) && (pTVar5 = *(Task **)(pcVar1 + 0xc), pTVar5 != (Task *)0x0)) {\n          iVar3 = *(int *)(pTVar5 + 4);\n          if (*(Task **)(pcVar1 + 0x10) == pTVar5) goto LAB_002d3a40;\n          while (*(int *)(pcVar1 + 0xc) = iVar3, iVar3 != 0) {\n            *(undefined4 *)(pTVar5 + 4) = 0;\n            while( true ) {\n              *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n              return_or_queue(this_00,pTVar5,true,apTStack_48);\n              pTVar5 = *(Task **)(pcVar1 + 0xc);\n              if (pTVar5 == (Task *)0x0) goto LAB_002d398c;\n              iVar3 = *(int *)(pTVar5 + 4);\n              if (*(Task **)(pcVar1 + 0x10) != pTVar5) break;\nLAB_002d3a40:\n              if (iVar3 != 0) goto LAB_002d3a94;\n              pcVar1[0xc] = '\0';\n              pcVar1[0xd] = '\0';\n              pcVar1[0xe] = '\0';\n              pcVar1[0xf] = '\0';\n              pcVar1[0x10] = '\0';\n              pcVar1[0x11] = '\0';\n              pcVar1[0x12] = '\0';\n              pcVar1[0x13] = '\0';\n            }\n          }\nLAB_002d3a5c:\n          uVar6 = 0x5a;\n          goto LAB_002d3a60;\n        }\n        piVar8 = piVar8 + 1;\n        if (piVar8 == piVar7 + iVar3 + 1) {\n          return apTStack_48[0];\n        }\n      }\n      if (iVar4 != *(int *)(pcVar1 + 8)) {\n        uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                          (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0x84,\n                           *(int *)(puVar9 + 0x1ee098) + 0x3a5c);\n        return uVar6;\n      }\n      pcVar1[8] = '\0';\n      pcVar1[9] = '\0';\n      pcVar1[10] = '\0';\n      pcVar1[0xb] = '\0';\n      do {\n        pTVar5 = *(Task **)(pcVar1 + 0xc);\n        if (pTVar5 == (Task *)0x0) break;\n        iVar3 = *(int *)(pTVar5 + 4);\n        if (pTVar5 == *(Task **)(pcVar1 + 0x10)) {\n          if (iVar3 != 0) goto LAB_002d3a94;\n          pcVar1[0xc] = '\0';\n          pcVar1[0xd] = '\0';\n          pcVar1[0xe] = '\0';\n          pcVar1[0xf] = '\0';\n          pcVar1[0x10] = '\0';\n          pcVar1[0x11] = '\0';\n          pcVar1[0x12] = '\0';\n          pcVar1[0x13] = '\0';\n        }\n        else {\n          *(int *)(pcVar1 + 0xc) = iVar3;\n          if (iVar3 == 0) goto LAB_002d3a5c;\n          *(undefined4 *)(pTVar5 + 4) = 0;\n        }\n        *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n        iVar3 = return_or_queue(this_00,pTVar5,false,apTStack_48);\n      } while (iVar3 == 0);\nLAB_002d398c:\n      iVar3 = *piVar7;\n      piVar8 = piVar8 + 1;\n    } while (piVar8 != piVar7 + iVar3 + 1);\n  }" else (compound_statement "{\n    pWStack_40 = this;\n    do {\n      while (pcVar1 = (char *)*piVar8, *pcVar1 != '\0') {\n        iVar2 = *(int *)(pcVar1 + 4) + -1;\n        if (*(int *)(pcVar1 + 4) < 1) {\n          uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                            (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0xa1,\n                             *(int *)(puVar9 + 0x1ee098) + 0x3a6c);\n          return uVar6;\n        }\n        pcVar1[8] = '\0';\n        pcVar1[9] = '\0';\n        pcVar1[10] = '\0';\n        pcVar1[0xb] = '\0';\n        *(int *)(pcVar1 + 4) = iVar2;\n        if ((iVar2 == 0) && (pTVar5 = *(Task **)(pcVar1 + 0xc), pTVar5 != (Task *)0x0)) {\n          iVar3 = *(int *)(pTVar5 + 4);\n          if (*(Task **)(pcVar1 + 0x10) == pTVar5) goto LAB_002d3a40;\n          while (*(int *)(pcVar1 + 0xc) = iVar3, iVar3 != 0) {\n            *(undefined4 *)(pTVar5 + 4) = 0;\n            while( true ) {\n              *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n              return_or_queue(this_00,pTVar5,true,apTStack_48);\n              pTVar5 = *(Task **)(pcVar1 + 0xc);\n              if (pTVar5 == (Task *)0x0) goto LAB_002d398c;\n              iVar3 = *(int *)(pTVar5 + 4);\n              if (*(Task **)(pcVar1 + 0x10) != pTVar5) break;\nLAB_002d3a40:\n              if (iVar3 != 0) goto LAB_002d3a94;\n              pcVar1[0xc] = '\0';\n              pcVar1[0xd] = '\0';\n              pcVar1[0xe] = '\0';\n              pcVar1[0xf] = '\0';\n              pcVar1[0x10] = '\0';\n              pcVar1[0x11] = '\0';\n              pcVar1[0x12] = '\0';\n              pcVar1[0x13] = '\0';\n            }\n          }\nLAB_002d3a5c:\n          uVar6 = 0x5a;\n          goto LAB_002d3a60;\n        }\n        piVar8 = piVar8 + 1;\n        if (piVar8 == piVar7 + iVar3 + 1) {\n          return apTStack_48[0];\n        }\n      }\n      if (iVar4 != *(int *)(pcVar1 + 8)) {\n        uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                          (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0x84,\n                           *(int *)(puVar9 + 0x1ee098) + 0x3a5c);\n        return uVar6;\n      }\n      pcVar1[8] = '\0';\n      pcVar1[9] = '\0';\n      pcVar1[10] = '\0';\n      pcVar1[0xb] = '\0';\n      do {\n        pTVar5 = *(Task **)(pcVar1 + 0xc);\n        if (pTVar5 == (Task *)0x0) break;\n        iVar3 = *(int *)(pTVar5 + 4);\n        if (pTVar5 == *(Task **)(pcVar1 + 0x10)) {\n          if (iVar3 != 0) goto LAB_002d3a94;\n          pcVar1[0xc] = '\0';\n          pcVar1[0xd] = '\0';\n          pcVar1[0xe] = '\0';\n          pcVar1[0xf] = '\0';\n          pcVar1[0x10] = '\0';\n          pcVar1[0x11] = '\0';\n          pcVar1[0x12] = '\0';\n          pcVar1[0x13] = '\0';\n        }\n        else {\n          *(int *)(pcVar1 + 0xc) = iVar3;\n          if (iVar3 == 0) goto LAB_002d3a5c;\n          *(undefined4 *)(pTVar5 + 4) = 0;\n        }\n        *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n        iVar3 = return_or_queue(this_00,pTVar5,false,apTStack_48);\n      } while (iVar3 == 0);\nLAB_002d398c:\n      iVar3 = *piVar7;\n      piVar8 = piVar8 + 1;\n    } while (piVar8 != piVar7 + iVar3 + 1);\n  }" { (expression_statement "pWStack_40 = this;" (assignment_expression "pWStack_40 = this" identifier = identifier) ;) (do_statement "do {\n      while (pcVar1 = (char *)*piVar8, *pcVar1 != '\0') {\n        iVar2 = *(int *)(pcVar1 + 4) + -1;\n        if (*(int *)(pcVar1 + 4) < 1) {\n          uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                            (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0xa1,\n                             *(int *)(puVar9 + 0x1ee098) + 0x3a6c);\n          return uVar6;\n        }\n        pcVar1[8] = '\0';\n        pcVar1[9] = '\0';\n        pcVar1[10] = '\0';\n        pcVar1[0xb] = '\0';\n        *(int *)(pcVar1 + 4) = iVar2;\n        if ((iVar2 == 0) && (pTVar5 = *(Task **)(pcVar1 + 0xc), pTVar5 != (Task *)0x0)) {\n          iVar3 = *(int *)(pTVar5 + 4);\n          if (*(Task **)(pcVar1 + 0x10) == pTVar5) goto LAB_002d3a40;\n          while (*(int *)(pcVar1 + 0xc) = iVar3, iVar3 != 0) {\n            *(undefined4 *)(pTVar5 + 4) = 0;\n            while( true ) {\n              *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n              return_or_queue(this_00,pTVar5,true,apTStack_48);\n              pTVar5 = *(Task **)(pcVar1 + 0xc);\n              if (pTVar5 == (Task *)0x0) goto LAB_002d398c;\n              iVar3 = *(int *)(pTVar5 + 4);\n              if (*(Task **)(pcVar1 + 0x10) != pTVar5) break;\nLAB_002d3a40:\n              if (iVar3 != 0) goto LAB_002d3a94;\n              pcVar1[0xc] = '\0';\n              pcVar1[0xd] = '\0';\n              pcVar1[0xe] = '\0';\n              pcVar1[0xf] = '\0';\n              pcVar1[0x10] = '\0';\n              pcVar1[0x11] = '\0';\n              pcVar1[0x12] = '\0';\n              pcVar1[0x13] = '\0';\n            }\n          }\nLAB_002d3a5c:\n          uVar6 = 0x5a;\n          goto LAB_002d3a60;\n        }\n        piVar8 = piVar8 + 1;\n        if (piVar8 == piVar7 + iVar3 + 1) {\n          return apTStack_48[0];\n        }\n      }\n      if (iVar4 != *(int *)(pcVar1 + 8)) {\n        uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                          (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0x84,\n                           *(int *)(puVar9 + 0x1ee098) + 0x3a5c);\n        return uVar6;\n      }\n      pcVar1[8] = '\0';\n      pcVar1[9] = '\0';\n      pcVar1[10] = '\0';\n      pcVar1[0xb] = '\0';\n      do {\n        pTVar5 = *(Task **)(pcVar1 + 0xc);\n        if (pTVar5 == (Task *)0x0) break;\n        iVar3 = *(int *)(pTVar5 + 4);\n        if (pTVar5 == *(Task **)(pcVar1 + 0x10)) {\n          if (iVar3 != 0) goto LAB_002d3a94;\n          pcVar1[0xc] = '\0';\n          pcVar1[0xd] = '\0';\n          pcVar1[0xe] = '\0';\n          pcVar1[0xf] = '\0';\n          pcVar1[0x10] = '\0';\n          pcVar1[0x11] = '\0';\n          pcVar1[0x12] = '\0';\n          pcVar1[0x13] = '\0';\n        }\n        else {\n          *(int *)(pcVar1 + 0xc) = iVar3;\n          if (iVar3 == 0) goto LAB_002d3a5c;\n          *(undefined4 *)(pTVar5 + 4) = 0;\n        }\n        *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n        iVar3 = return_or_queue(this_00,pTVar5,false,apTStack_48);\n      } while (iVar3 == 0);\nLAB_002d398c:\n      iVar3 = *piVar7;\n      piVar8 = piVar8 + 1;\n    } while (piVar8 != piVar7 + iVar3 + 1);" do (compound_statement "{\n      while (pcVar1 = (char *)*piVar8, *pcVar1 != '\0') {\n        iVar2 = *(int *)(pcVar1 + 4) + -1;\n        if (*(int *)(pcVar1 + 4) < 1) {\n          uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                            (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0xa1,\n                             *(int *)(puVar9 + 0x1ee098) + 0x3a6c);\n          return uVar6;\n        }\n        pcVar1[8] = '\0';\n        pcVar1[9] = '\0';\n        pcVar1[10] = '\0';\n        pcVar1[0xb] = '\0';\n        *(int *)(pcVar1 + 4) = iVar2;\n        if ((iVar2 == 0) && (pTVar5 = *(Task **)(pcVar1 + 0xc), pTVar5 != (Task *)0x0)) {\n          iVar3 = *(int *)(pTVar5 + 4);\n          if (*(Task **)(pcVar1 + 0x10) == pTVar5) goto LAB_002d3a40;\n          while (*(int *)(pcVar1 + 0xc) = iVar3, iVar3 != 0) {\n            *(undefined4 *)(pTVar5 + 4) = 0;\n            while( true ) {\n              *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n              return_or_queue(this_00,pTVar5,true,apTStack_48);\n              pTVar5 = *(Task **)(pcVar1 + 0xc);\n              if (pTVar5 == (Task *)0x0) goto LAB_002d398c;\n              iVar3 = *(int *)(pTVar5 + 4);\n              if (*(Task **)(pcVar1 + 0x10) != pTVar5) break;\nLAB_002d3a40:\n              if (iVar3 != 0) goto LAB_002d3a94;\n              pcVar1[0xc] = '\0';\n              pcVar1[0xd] = '\0';\n              pcVar1[0xe] = '\0';\n              pcVar1[0xf] = '\0';\n              pcVar1[0x10] = '\0';\n              pcVar1[0x11] = '\0';\n              pcVar1[0x12] = '\0';\n              pcVar1[0x13] = '\0';\n            }\n          }\nLAB_002d3a5c:\n          uVar6 = 0x5a;\n          goto LAB_002d3a60;\n        }\n        piVar8 = piVar8 + 1;\n        if (piVar8 == piVar7 + iVar3 + 1) {\n          return apTStack_48[0];\n        }\n      }\n      if (iVar4 != *(int *)(pcVar1 + 8)) {\n        uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                          (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0x84,\n                           *(int *)(puVar9 + 0x1ee098) + 0x3a5c);\n        return uVar6;\n      }\n      pcVar1[8] = '\0';\n      pcVar1[9] = '\0';\n      pcVar1[10] = '\0';\n      pcVar1[0xb] = '\0';\n      do {\n        pTVar5 = *(Task **)(pcVar1 + 0xc);\n        if (pTVar5 == (Task *)0x0) break;\n        iVar3 = *(int *)(pTVar5 + 4);\n        if (pTVar5 == *(Task **)(pcVar1 + 0x10)) {\n          if (iVar3 != 0) goto LAB_002d3a94;\n          pcVar1[0xc] = '\0';\n          pcVar1[0xd] = '\0';\n          pcVar1[0xe] = '\0';\n          pcVar1[0xf] = '\0';\n          pcVar1[0x10] = '\0';\n          pcVar1[0x11] = '\0';\n          pcVar1[0x12] = '\0';\n          pcVar1[0x13] = '\0';\n        }\n        else {\n          *(int *)(pcVar1 + 0xc) = iVar3;\n          if (iVar3 == 0) goto LAB_002d3a5c;\n          *(undefined4 *)(pTVar5 + 4) = 0;\n        }\n        *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n        iVar3 = return_or_queue(this_00,pTVar5,false,apTStack_48);\n      } while (iVar3 == 0);\nLAB_002d398c:\n      iVar3 = *piVar7;\n      piVar8 = piVar8 + 1;\n    }" { (while_statement "while (pcVar1 = (char *)*piVar8, *pcVar1 != '\0') {\n        iVar2 = *(int *)(pcVar1 + 4) + -1;\n        if (*(int *)(pcVar1 + 4) < 1) {\n          uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                            (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0xa1,\n                             *(int *)(puVar9 + 0x1ee098) + 0x3a6c);\n          return uVar6;\n        }\n        pcVar1[8] = '\0';\n        pcVar1[9] = '\0';\n        pcVar1[10] = '\0';\n        pcVar1[0xb] = '\0';\n        *(int *)(pcVar1 + 4) = iVar2;\n        if ((iVar2 == 0) && (pTVar5 = *(Task **)(pcVar1 + 0xc), pTVar5 != (Task *)0x0)) {\n          iVar3 = *(int *)(pTVar5 + 4);\n          if (*(Task **)(pcVar1 + 0x10) == pTVar5) goto LAB_002d3a40;\n          while (*(int *)(pcVar1 + 0xc) = iVar3, iVar3 != 0) {\n            *(undefined4 *)(pTVar5 + 4) = 0;\n            while( true ) {\n              *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n              return_or_queue(this_00,pTVar5,true,apTStack_48);\n              pTVar5 = *(Task **)(pcVar1 + 0xc);\n              if (pTVar5 == (Task *)0x0) goto LAB_002d398c;\n              iVar3 = *(int *)(pTVar5 + 4);\n              if (*(Task **)(pcVar1 + 0x10) != pTVar5) break;\nLAB_002d3a40:\n              if (iVar3 != 0) goto LAB_002d3a94;\n              pcVar1[0xc] = '\0';\n              pcVar1[0xd] = '\0';\n              pcVar1[0xe] = '\0';\n              pcVar1[0xf] = '\0';\n              pcVar1[0x10] = '\0';\n              pcVar1[0x11] = '\0';\n              pcVar1[0x12] = '\0';\n              pcVar1[0x13] = '\0';\n            }\n          }\nLAB_002d3a5c:\n          uVar6 = 0x5a;\n          goto LAB_002d3a60;\n        }\n        piVar8 = piVar8 + 1;\n        if (piVar8 == piVar7 + iVar3 + 1) {\n          return apTStack_48[0];\n        }\n      }" while (parenthesized_expression "(pcVar1 = (char *)*piVar8, *pcVar1 != '\0')" ( (comma_expression "pcVar1 = (char *)*piVar8, *pcVar1 != '\0'" (assignment_expression "pcVar1 = (char *)*piVar8" identifier = (cast_expression "(char *)*piVar8" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar8" * identifier))) , (binary_expression "*pcVar1 != '\0'" (pointer_expression "*pcVar1" * identifier) != (char_literal "'\0'" ' escape_sequence '))) )) (compound_statement "{\n        iVar2 = *(int *)(pcVar1 + 4) + -1;\n        if (*(int *)(pcVar1 + 4) < 1) {\n          uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                            (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0xa1,\n                             *(int *)(puVar9 + 0x1ee098) + 0x3a6c);\n          return uVar6;\n        }\n        pcVar1[8] = '\0';\n        pcVar1[9] = '\0';\n        pcVar1[10] = '\0';\n        pcVar1[0xb] = '\0';\n        *(int *)(pcVar1 + 4) = iVar2;\n        if ((iVar2 == 0) && (pTVar5 = *(Task **)(pcVar1 + 0xc), pTVar5 != (Task *)0x0)) {\n          iVar3 = *(int *)(pTVar5 + 4);\n          if (*(Task **)(pcVar1 + 0x10) == pTVar5) goto LAB_002d3a40;\n          while (*(int *)(pcVar1 + 0xc) = iVar3, iVar3 != 0) {\n            *(undefined4 *)(pTVar5 + 4) = 0;\n            while( true ) {\n              *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n              return_or_queue(this_00,pTVar5,true,apTStack_48);\n              pTVar5 = *(Task **)(pcVar1 + 0xc);\n              if (pTVar5 == (Task *)0x0) goto LAB_002d398c;\n              iVar3 = *(int *)(pTVar5 + 4);\n              if (*(Task **)(pcVar1 + 0x10) != pTVar5) break;\nLAB_002d3a40:\n              if (iVar3 != 0) goto LAB_002d3a94;\n              pcVar1[0xc] = '\0';\n              pcVar1[0xd] = '\0';\n              pcVar1[0xe] = '\0';\n              pcVar1[0xf] = '\0';\n              pcVar1[0x10] = '\0';\n              pcVar1[0x11] = '\0';\n              pcVar1[0x12] = '\0';\n              pcVar1[0x13] = '\0';\n            }\n          }\nLAB_002d3a5c:\n          uVar6 = 0x5a;\n          goto LAB_002d3a60;\n        }\n        piVar8 = piVar8 + 1;\n        if (piVar8 == piVar7 + iVar3 + 1) {\n          return apTStack_48[0];\n        }\n      }" { (expression_statement "iVar2 = *(int *)(pcVar1 + 4) + -1;" (assignment_expression "iVar2 = *(int *)(pcVar1 + 4) + -1" identifier = (binary_expression "*(int *)(pcVar1 + 4) + -1" (pointer_expression "*(int *)(pcVar1 + 4)" * (cast_expression "(int *)(pcVar1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar1 + 4)" ( (binary_expression "pcVar1 + 4" identifier + number_literal) )))) + number_literal)) ;) (if_statement "if (*(int *)(pcVar1 + 4) < 1) {\n          uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                            (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0xa1,\n                             *(int *)(puVar9 + 0x1ee098) + 0x3a6c);\n          return uVar6;\n        }" if (parenthesized_expression "(*(int *)(pcVar1 + 4) < 1)" ( (binary_expression "*(int *)(pcVar1 + 4) < 1" (pointer_expression "*(int *)(pcVar1 + 4)" * (cast_expression "(int *)(pcVar1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar1 + 4)" ( (binary_expression "pcVar1 + 4" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n          uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                            (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0xa1,\n                             *(int *)(puVar9 + 0x1ee098) + 0x3a6c);\n          return uVar6;\n        }" { (expression_statement "uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                            (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0xa1,\n                             *(int *)(puVar9 + 0x1ee098) + 0x3a6c);" (assignment_expression "uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                            (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0xa1,\n                             *(int *)(puVar9 + 0x1ee098) + 0x3a6c)" identifier = (call_expression "(**(code **)(puVar9 + 0x1ee1ac))\n                            (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0xa1,\n                             *(int *)(puVar9 + 0x1ee098) + 0x3a6c)" (parenthesized_expression "(**(code **)(puVar9 + 0x1ee1ac))" ( (pointer_expression "**(code **)(puVar9 + 0x1ee1ac)" * (pointer_expression "*(code **)(puVar9 + 0x1ee1ac)" * (cast_expression "(code **)(puVar9 + 0x1ee1ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0x1ee1ac)" ( (binary_expression "puVar9 + 0x1ee1ac" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0xa1,\n                             *(int *)(puVar9 + 0x1ee098) + 0x3a6c)" ( (binary_expression "*(int *)(puVar9 + 0x1ed9f8) + -0x7f8" (pointer_expression "*(int *)(puVar9 + 0x1ed9f8)" * (cast_expression "(int *)(puVar9 + 0x1ed9f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0x1ed9f8)" ( (binary_expression "puVar9 + 0x1ed9f8" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar9 + 0x1ee098) + 0x3a6c" (pointer_expression "*(int *)(puVar9 + 0x1ee098)" * (cast_expression "(int *)(puVar9 + 0x1ee098)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0x1ee098)" ( (binary_expression "puVar9 + 0x1ee098" identifier + number_literal) )))) + number_literal) )))) ;) (return_statement "return uVar6;" return identifier ;) })) (expression_statement "pcVar1[8] = '\0';" (assignment_expression "pcVar1[8] = '\0'" (subscript_expression "pcVar1[8]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar1[9] = '\0';" (assignment_expression "pcVar1[9] = '\0'" (subscript_expression "pcVar1[9]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar1[10] = '\0';" (assignment_expression "pcVar1[10] = '\0'" (subscript_expression "pcVar1[10]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar1[0xb] = '\0';" (assignment_expression "pcVar1[0xb] = '\0'" (subscript_expression "pcVar1[0xb]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "*(int *)(pcVar1 + 4) = iVar2;" (assignment_expression "*(int *)(pcVar1 + 4) = iVar2" (pointer_expression "*(int *)(pcVar1 + 4)" * (cast_expression "(int *)(pcVar1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar1 + 4)" ( (binary_expression "pcVar1 + 4" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((iVar2 == 0) && (pTVar5 = *(Task **)(pcVar1 + 0xc), pTVar5 != (Task *)0x0)) {\n          iVar3 = *(int *)(pTVar5 + 4);\n          if (*(Task **)(pcVar1 + 0x10) == pTVar5) goto LAB_002d3a40;\n          while (*(int *)(pcVar1 + 0xc) = iVar3, iVar3 != 0) {\n            *(undefined4 *)(pTVar5 + 4) = 0;\n            while( true ) {\n              *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n              return_or_queue(this_00,pTVar5,true,apTStack_48);\n              pTVar5 = *(Task **)(pcVar1 + 0xc);\n              if (pTVar5 == (Task *)0x0) goto LAB_002d398c;\n              iVar3 = *(int *)(pTVar5 + 4);\n              if (*(Task **)(pcVar1 + 0x10) != pTVar5) break;\nLAB_002d3a40:\n              if (iVar3 != 0) goto LAB_002d3a94;\n              pcVar1[0xc] = '\0';\n              pcVar1[0xd] = '\0';\n              pcVar1[0xe] = '\0';\n              pcVar1[0xf] = '\0';\n              pcVar1[0x10] = '\0';\n              pcVar1[0x11] = '\0';\n              pcVar1[0x12] = '\0';\n              pcVar1[0x13] = '\0';\n            }\n          }\nLAB_002d3a5c:\n          uVar6 = 0x5a;\n          goto LAB_002d3a60;\n        }" if (parenthesized_expression "((iVar2 == 0) && (pTVar5 = *(Task **)(pcVar1 + 0xc), pTVar5 != (Task *)0x0))" ( (binary_expression "(iVar2 == 0) && (pTVar5 = *(Task **)(pcVar1 + 0xc), pTVar5 != (Task *)0x0)" (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) && (parenthesized_expression "(pTVar5 = *(Task **)(pcVar1 + 0xc), pTVar5 != (Task *)0x0)" ( (comma_expression "pTVar5 = *(Task **)(pcVar1 + 0xc), pTVar5 != (Task *)0x0" (assignment_expression "pTVar5 = *(Task **)(pcVar1 + 0xc)" identifier = (pointer_expression "*(Task **)(pcVar1 + 0xc)" * (cast_expression "(Task **)(pcVar1 + 0xc)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar1 + 0xc)" ( (binary_expression "pcVar1 + 0xc" identifier + number_literal) ))))) , (binary_expression "pTVar5 != (Task *)0x0" identifier != (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n          iVar3 = *(int *)(pTVar5 + 4);\n          if (*(Task **)(pcVar1 + 0x10) == pTVar5) goto LAB_002d3a40;\n          while (*(int *)(pcVar1 + 0xc) = iVar3, iVar3 != 0) {\n            *(undefined4 *)(pTVar5 + 4) = 0;\n            while( true ) {\n              *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n              return_or_queue(this_00,pTVar5,true,apTStack_48);\n              pTVar5 = *(Task **)(pcVar1 + 0xc);\n              if (pTVar5 == (Task *)0x0) goto LAB_002d398c;\n              iVar3 = *(int *)(pTVar5 + 4);\n              if (*(Task **)(pcVar1 + 0x10) != pTVar5) break;\nLAB_002d3a40:\n              if (iVar3 != 0) goto LAB_002d3a94;\n              pcVar1[0xc] = '\0';\n              pcVar1[0xd] = '\0';\n              pcVar1[0xe] = '\0';\n              pcVar1[0xf] = '\0';\n              pcVar1[0x10] = '\0';\n              pcVar1[0x11] = '\0';\n              pcVar1[0x12] = '\0';\n              pcVar1[0x13] = '\0';\n            }\n          }\nLAB_002d3a5c:\n          uVar6 = 0x5a;\n          goto LAB_002d3a60;\n        }" { (expression_statement "iVar3 = *(int *)(pTVar5 + 4);" (assignment_expression "iVar3 = *(int *)(pTVar5 + 4)" identifier = (pointer_expression "*(int *)(pTVar5 + 4)" * (cast_expression "(int *)(pTVar5 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pTVar5 + 4)" ( (binary_expression "pTVar5 + 4" identifier + number_literal) ))))) ;) (if_statement "if (*(Task **)(pcVar1 + 0x10) == pTVar5) goto LAB_002d3a40;" if (parenthesized_expression "(*(Task **)(pcVar1 + 0x10) == pTVar5)" ( (binary_expression "*(Task **)(pcVar1 + 0x10) == pTVar5" (pointer_expression "*(Task **)(pcVar1 + 0x10)" * (cast_expression "(Task **)(pcVar1 + 0x10)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar1 + 0x10)" ( (binary_expression "pcVar1 + 0x10" identifier + number_literal) )))) == identifier) )) (goto_statement "goto LAB_002d3a40;" goto statement_identifier ;)) (while_statement "while (*(int *)(pcVar1 + 0xc) = iVar3, iVar3 != 0) {\n            *(undefined4 *)(pTVar5 + 4) = 0;\n            while( true ) {\n              *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n              return_or_queue(this_00,pTVar5,true,apTStack_48);\n              pTVar5 = *(Task **)(pcVar1 + 0xc);\n              if (pTVar5 == (Task *)0x0) goto LAB_002d398c;\n              iVar3 = *(int *)(pTVar5 + 4);\n              if (*(Task **)(pcVar1 + 0x10) != pTVar5) break;\nLAB_002d3a40:\n              if (iVar3 != 0) goto LAB_002d3a94;\n              pcVar1[0xc] = '\0';\n              pcVar1[0xd] = '\0';\n              pcVar1[0xe] = '\0';\n              pcVar1[0xf] = '\0';\n              pcVar1[0x10] = '\0';\n              pcVar1[0x11] = '\0';\n              pcVar1[0x12] = '\0';\n              pcVar1[0x13] = '\0';\n            }\n          }" while (parenthesized_expression "(*(int *)(pcVar1 + 0xc) = iVar3, iVar3 != 0)" ( (comma_expression "*(int *)(pcVar1 + 0xc) = iVar3, iVar3 != 0" (assignment_expression "*(int *)(pcVar1 + 0xc) = iVar3" (pointer_expression "*(int *)(pcVar1 + 0xc)" * (cast_expression "(int *)(pcVar1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar1 + 0xc)" ( (binary_expression "pcVar1 + 0xc" identifier + number_literal) )))) = identifier) , (binary_expression "iVar3 != 0" identifier != number_literal)) )) (compound_statement "{\n            *(undefined4 *)(pTVar5 + 4) = 0;\n            while( true ) {\n              *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n              return_or_queue(this_00,pTVar5,true,apTStack_48);\n              pTVar5 = *(Task **)(pcVar1 + 0xc);\n              if (pTVar5 == (Task *)0x0) goto LAB_002d398c;\n              iVar3 = *(int *)(pTVar5 + 4);\n              if (*(Task **)(pcVar1 + 0x10) != pTVar5) break;\nLAB_002d3a40:\n              if (iVar3 != 0) goto LAB_002d3a94;\n              pcVar1[0xc] = '\0';\n              pcVar1[0xd] = '\0';\n              pcVar1[0xe] = '\0';\n              pcVar1[0xf] = '\0';\n              pcVar1[0x10] = '\0';\n              pcVar1[0x11] = '\0';\n              pcVar1[0x12] = '\0';\n              pcVar1[0x13] = '\0';\n            }\n          }" { (expression_statement "*(undefined4 *)(pTVar5 + 4) = 0;" (assignment_expression "*(undefined4 *)(pTVar5 + 4) = 0" (pointer_expression "*(undefined4 *)(pTVar5 + 4)" * (cast_expression "(undefined4 *)(pTVar5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pTVar5 + 4)" ( (binary_expression "pTVar5 + 4" identifier + number_literal) )))) = number_literal) ;) (while_statement "while( true ) {\n              *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n              return_or_queue(this_00,pTVar5,true,apTStack_48);\n              pTVar5 = *(Task **)(pcVar1 + 0xc);\n              if (pTVar5 == (Task *)0x0) goto LAB_002d398c;\n              iVar3 = *(int *)(pTVar5 + 4);\n              if (*(Task **)(pcVar1 + 0x10) != pTVar5) break;\nLAB_002d3a40:\n              if (iVar3 != 0) goto LAB_002d3a94;\n              pcVar1[0xc] = '\0';\n              pcVar1[0xd] = '\0';\n              pcVar1[0xe] = '\0';\n              pcVar1[0xf] = '\0';\n              pcVar1[0x10] = '\0';\n              pcVar1[0x11] = '\0';\n              pcVar1[0x12] = '\0';\n              pcVar1[0x13] = '\0';\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n              return_or_queue(this_00,pTVar5,true,apTStack_48);\n              pTVar5 = *(Task **)(pcVar1 + 0xc);\n              if (pTVar5 == (Task *)0x0) goto LAB_002d398c;\n              iVar3 = *(int *)(pTVar5 + 4);\n              if (*(Task **)(pcVar1 + 0x10) != pTVar5) break;\nLAB_002d3a40:\n              if (iVar3 != 0) goto LAB_002d3a94;\n              pcVar1[0xc] = '\0';\n              pcVar1[0xd] = '\0';\n              pcVar1[0xe] = '\0';\n              pcVar1[0xf] = '\0';\n              pcVar1[0x10] = '\0';\n              pcVar1[0x11] = '\0';\n              pcVar1[0x12] = '\0';\n              pcVar1[0x13] = '\0';\n            }" { (expression_statement "*(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;" (assignment_expression "*(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1" (pointer_expression "*(int *)(this_00 + 0x18)" * (cast_expression "(int *)(this_00 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this_00 + 0x18)" ( (binary_expression "this_00 + 0x18" identifier + number_literal) )))) = (binary_expression "*(int *)(this_00 + 0x18) + -1" (pointer_expression "*(int *)(this_00 + 0x18)" * (cast_expression "(int *)(this_00 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this_00 + 0x18)" ( (binary_expression "this_00 + 0x18" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "return_or_queue(this_00,pTVar5,true,apTStack_48);" (call_expression "return_or_queue(this_00,pTVar5,true,apTStack_48)" identifier (argument_list "(this_00,pTVar5,true,apTStack_48)" ( identifier , identifier , true , identifier ))) ;) (expression_statement "pTVar5 = *(Task **)(pcVar1 + 0xc);" (assignment_expression "pTVar5 = *(Task **)(pcVar1 + 0xc)" identifier = (pointer_expression "*(Task **)(pcVar1 + 0xc)" * (cast_expression "(Task **)(pcVar1 + 0xc)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar1 + 0xc)" ( (binary_expression "pcVar1 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (pTVar5 == (Task *)0x0) goto LAB_002d398c;" if (parenthesized_expression "(pTVar5 == (Task *)0x0)" ( (binary_expression "pTVar5 == (Task *)0x0" identifier == (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_002d398c;" goto statement_identifier ;)) (expression_statement "iVar3 = *(int *)(pTVar5 + 4);" (assignment_expression "iVar3 = *(int *)(pTVar5 + 4)" identifier = (pointer_expression "*(int *)(pTVar5 + 4)" * (cast_expression "(int *)(pTVar5 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pTVar5 + 4)" ( (binary_expression "pTVar5 + 4" identifier + number_literal) ))))) ;) (if_statement "if (*(Task **)(pcVar1 + 0x10) != pTVar5) break;" if (parenthesized_expression "(*(Task **)(pcVar1 + 0x10) != pTVar5)" ( (binary_expression "*(Task **)(pcVar1 + 0x10) != pTVar5" (pointer_expression "*(Task **)(pcVar1 + 0x10)" * (cast_expression "(Task **)(pcVar1 + 0x10)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar1 + 0x10)" ( (binary_expression "pcVar1 + 0x10" identifier + number_literal) )))) != identifier) )) (break_statement "break;" break ;)) (labeled_statement "LAB_002d3a40:\n              if (iVar3 != 0) goto LAB_002d3a94;" statement_identifier : (if_statement "if (iVar3 != 0) goto LAB_002d3a94;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_002d3a94;" goto statement_identifier ;))) (expression_statement "pcVar1[0xc] = '\0';" (assignment_expression "pcVar1[0xc] = '\0'" (subscript_expression "pcVar1[0xc]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar1[0xd] = '\0';" (assignment_expression "pcVar1[0xd] = '\0'" (subscript_expression "pcVar1[0xd]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar1[0xe] = '\0';" (assignment_expression "pcVar1[0xe] = '\0'" (subscript_expression "pcVar1[0xe]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar1[0xf] = '\0';" (assignment_expression "pcVar1[0xf] = '\0'" (subscript_expression "pcVar1[0xf]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar1[0x10] = '\0';" (assignment_expression "pcVar1[0x10] = '\0'" (subscript_expression "pcVar1[0x10]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar1[0x11] = '\0';" (assignment_expression "pcVar1[0x11] = '\0'" (subscript_expression "pcVar1[0x11]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar1[0x12] = '\0';" (assignment_expression "pcVar1[0x12] = '\0'" (subscript_expression "pcVar1[0x12]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar1[0x13] = '\0';" (assignment_expression "pcVar1[0x13] = '\0'" (subscript_expression "pcVar1[0x13]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) })) })) (labeled_statement "LAB_002d3a5c:\n          uVar6 = 0x5a;" statement_identifier : (expression_statement "uVar6 = 0x5a;" (assignment_expression "uVar6 = 0x5a" identifier = number_literal) ;)) (goto_statement "goto LAB_002d3a60;" goto statement_identifier ;) })) (expression_statement "piVar8 = piVar8 + 1;" (assignment_expression "piVar8 = piVar8 + 1" identifier = (binary_expression "piVar8 + 1" identifier + number_literal)) ;) (if_statement "if (piVar8 == piVar7 + iVar3 + 1) {\n          return apTStack_48[0];\n        }" if (parenthesized_expression "(piVar8 == piVar7 + iVar3 + 1)" ( (binary_expression "piVar8 == piVar7 + iVar3 + 1" identifier == (binary_expression "piVar7 + iVar3 + 1" (binary_expression "piVar7 + iVar3" identifier + identifier) + number_literal)) )) (compound_statement "{\n          return apTStack_48[0];\n        }" { (return_statement "return apTStack_48[0];" return (subscript_expression "apTStack_48[0]" identifier [ number_literal ]) ;) })) })) (if_statement "if (iVar4 != *(int *)(pcVar1 + 8)) {\n        uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                          (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0x84,\n                           *(int *)(puVar9 + 0x1ee098) + 0x3a5c);\n        return uVar6;\n      }" if (parenthesized_expression "(iVar4 != *(int *)(pcVar1 + 8))" ( (binary_expression "iVar4 != *(int *)(pcVar1 + 8)" identifier != (pointer_expression "*(int *)(pcVar1 + 8)" * (cast_expression "(int *)(pcVar1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar1 + 8)" ( (binary_expression "pcVar1 + 8" identifier + number_literal) ))))) )) (compound_statement "{\n        uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                          (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0x84,\n                           *(int *)(puVar9 + 0x1ee098) + 0x3a5c);\n        return uVar6;\n      }" { (expression_statement "uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                          (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0x84,\n                           *(int *)(puVar9 + 0x1ee098) + 0x3a5c);" (assignment_expression "uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                          (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0x84,\n                           *(int *)(puVar9 + 0x1ee098) + 0x3a5c)" identifier = (call_expression "(**(code **)(puVar9 + 0x1ee1ac))\n                          (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0x84,\n                           *(int *)(puVar9 + 0x1ee098) + 0x3a5c)" (parenthesized_expression "(**(code **)(puVar9 + 0x1ee1ac))" ( (pointer_expression "**(code **)(puVar9 + 0x1ee1ac)" * (pointer_expression "*(code **)(puVar9 + 0x1ee1ac)" * (cast_expression "(code **)(puVar9 + 0x1ee1ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0x1ee1ac)" ( (binary_expression "puVar9 + 0x1ee1ac" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0x84,\n                           *(int *)(puVar9 + 0x1ee098) + 0x3a5c)" ( (binary_expression "*(int *)(puVar9 + 0x1ed9f8) + -0x7f8" (pointer_expression "*(int *)(puVar9 + 0x1ed9f8)" * (cast_expression "(int *)(puVar9 + 0x1ed9f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0x1ed9f8)" ( (binary_expression "puVar9 + 0x1ed9f8" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar9 + 0x1ee098) + 0x3a5c" (pointer_expression "*(int *)(puVar9 + 0x1ee098)" * (cast_expression "(int *)(puVar9 + 0x1ee098)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0x1ee098)" ( (binary_expression "puVar9 + 0x1ee098" identifier + number_literal) )))) + number_literal) )))) ;) (return_statement "return uVar6;" return identifier ;) })) (expression_statement "pcVar1[8] = '\0';" (assignment_expression "pcVar1[8] = '\0'" (subscript_expression "pcVar1[8]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar1[9] = '\0';" (assignment_expression "pcVar1[9] = '\0'" (subscript_expression "pcVar1[9]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar1[10] = '\0';" (assignment_expression "pcVar1[10] = '\0'" (subscript_expression "pcVar1[10]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar1[0xb] = '\0';" (assignment_expression "pcVar1[0xb] = '\0'" (subscript_expression "pcVar1[0xb]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (do_statement "do {\n        pTVar5 = *(Task **)(pcVar1 + 0xc);\n        if (pTVar5 == (Task *)0x0) break;\n        iVar3 = *(int *)(pTVar5 + 4);\n        if (pTVar5 == *(Task **)(pcVar1 + 0x10)) {\n          if (iVar3 != 0) goto LAB_002d3a94;\n          pcVar1[0xc] = '\0';\n          pcVar1[0xd] = '\0';\n          pcVar1[0xe] = '\0';\n          pcVar1[0xf] = '\0';\n          pcVar1[0x10] = '\0';\n          pcVar1[0x11] = '\0';\n          pcVar1[0x12] = '\0';\n          pcVar1[0x13] = '\0';\n        }\n        else {\n          *(int *)(pcVar1 + 0xc) = iVar3;\n          if (iVar3 == 0) goto LAB_002d3a5c;\n          *(undefined4 *)(pTVar5 + 4) = 0;\n        }\n        *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n        iVar3 = return_or_queue(this_00,pTVar5,false,apTStack_48);\n      } while (iVar3 == 0);" do (compound_statement "{\n        pTVar5 = *(Task **)(pcVar1 + 0xc);\n        if (pTVar5 == (Task *)0x0) break;\n        iVar3 = *(int *)(pTVar5 + 4);\n        if (pTVar5 == *(Task **)(pcVar1 + 0x10)) {\n          if (iVar3 != 0) goto LAB_002d3a94;\n          pcVar1[0xc] = '\0';\n          pcVar1[0xd] = '\0';\n          pcVar1[0xe] = '\0';\n          pcVar1[0xf] = '\0';\n          pcVar1[0x10] = '\0';\n          pcVar1[0x11] = '\0';\n          pcVar1[0x12] = '\0';\n          pcVar1[0x13] = '\0';\n        }\n        else {\n          *(int *)(pcVar1 + 0xc) = iVar3;\n          if (iVar3 == 0) goto LAB_002d3a5c;\n          *(undefined4 *)(pTVar5 + 4) = 0;\n        }\n        *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n        iVar3 = return_or_queue(this_00,pTVar5,false,apTStack_48);\n      }" { (expression_statement "pTVar5 = *(Task **)(pcVar1 + 0xc);" (assignment_expression "pTVar5 = *(Task **)(pcVar1 + 0xc)" identifier = (pointer_expression "*(Task **)(pcVar1 + 0xc)" * (cast_expression "(Task **)(pcVar1 + 0xc)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar1 + 0xc)" ( (binary_expression "pcVar1 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (pTVar5 == (Task *)0x0) break;" if (parenthesized_expression "(pTVar5 == (Task *)0x0)" ( (binary_expression "pTVar5 == (Task *)0x0" identifier == (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "iVar3 = *(int *)(pTVar5 + 4);" (assignment_expression "iVar3 = *(int *)(pTVar5 + 4)" identifier = (pointer_expression "*(int *)(pTVar5 + 4)" * (cast_expression "(int *)(pTVar5 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pTVar5 + 4)" ( (binary_expression "pTVar5 + 4" identifier + number_literal) ))))) ;) (if_statement "if (pTVar5 == *(Task **)(pcVar1 + 0x10)) {\n          if (iVar3 != 0) goto LAB_002d3a94;\n          pcVar1[0xc] = '\0';\n          pcVar1[0xd] = '\0';\n          pcVar1[0xe] = '\0';\n          pcVar1[0xf] = '\0';\n          pcVar1[0x10] = '\0';\n          pcVar1[0x11] = '\0';\n          pcVar1[0x12] = '\0';\n          pcVar1[0x13] = '\0';\n        }\n        else {\n          *(int *)(pcVar1 + 0xc) = iVar3;\n          if (iVar3 == 0) goto LAB_002d3a5c;\n          *(undefined4 *)(pTVar5 + 4) = 0;\n        }" if (parenthesized_expression "(pTVar5 == *(Task **)(pcVar1 + 0x10))" ( (binary_expression "pTVar5 == *(Task **)(pcVar1 + 0x10)" identifier == (pointer_expression "*(Task **)(pcVar1 + 0x10)" * (cast_expression "(Task **)(pcVar1 + 0x10)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar1 + 0x10)" ( (binary_expression "pcVar1 + 0x10" identifier + number_literal) ))))) )) (compound_statement "{\n          if (iVar3 != 0) goto LAB_002d3a94;\n          pcVar1[0xc] = '\0';\n          pcVar1[0xd] = '\0';\n          pcVar1[0xe] = '\0';\n          pcVar1[0xf] = '\0';\n          pcVar1[0x10] = '\0';\n          pcVar1[0x11] = '\0';\n          pcVar1[0x12] = '\0';\n          pcVar1[0x13] = '\0';\n        }" { (if_statement "if (iVar3 != 0) goto LAB_002d3a94;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_002d3a94;" goto statement_identifier ;)) (expression_statement "pcVar1[0xc] = '\0';" (assignment_expression "pcVar1[0xc] = '\0'" (subscript_expression "pcVar1[0xc]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar1[0xd] = '\0';" (assignment_expression "pcVar1[0xd] = '\0'" (subscript_expression "pcVar1[0xd]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar1[0xe] = '\0';" (assignment_expression "pcVar1[0xe] = '\0'" (subscript_expression "pcVar1[0xe]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar1[0xf] = '\0';" (assignment_expression "pcVar1[0xf] = '\0'" (subscript_expression "pcVar1[0xf]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar1[0x10] = '\0';" (assignment_expression "pcVar1[0x10] = '\0'" (subscript_expression "pcVar1[0x10]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar1[0x11] = '\0';" (assignment_expression "pcVar1[0x11] = '\0'" (subscript_expression "pcVar1[0x11]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar1[0x12] = '\0';" (assignment_expression "pcVar1[0x12] = '\0'" (subscript_expression "pcVar1[0x12]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar1[0x13] = '\0';" (assignment_expression "pcVar1[0x13] = '\0'" (subscript_expression "pcVar1[0x13]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) }) (else_clause "else {\n          *(int *)(pcVar1 + 0xc) = iVar3;\n          if (iVar3 == 0) goto LAB_002d3a5c;\n          *(undefined4 *)(pTVar5 + 4) = 0;\n        }" else (compound_statement "{\n          *(int *)(pcVar1 + 0xc) = iVar3;\n          if (iVar3 == 0) goto LAB_002d3a5c;\n          *(undefined4 *)(pTVar5 + 4) = 0;\n        }" { (expression_statement "*(int *)(pcVar1 + 0xc) = iVar3;" (assignment_expression "*(int *)(pcVar1 + 0xc) = iVar3" (pointer_expression "*(int *)(pcVar1 + 0xc)" * (cast_expression "(int *)(pcVar1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar1 + 0xc)" ( (binary_expression "pcVar1 + 0xc" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar3 == 0) goto LAB_002d3a5c;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_002d3a5c;" goto statement_identifier ;)) (expression_statement "*(undefined4 *)(pTVar5 + 4) = 0;" (assignment_expression "*(undefined4 *)(pTVar5 + 4) = 0" (pointer_expression "*(undefined4 *)(pTVar5 + 4)" * (cast_expression "(undefined4 *)(pTVar5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pTVar5 + 4)" ( (binary_expression "pTVar5 + 4" identifier + number_literal) )))) = number_literal) ;) }))) (expression_statement "*(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;" (assignment_expression "*(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1" (pointer_expression "*(int *)(this_00 + 0x18)" * (cast_expression "(int *)(this_00 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this_00 + 0x18)" ( (binary_expression "this_00 + 0x18" identifier + number_literal) )))) = (binary_expression "*(int *)(this_00 + 0x18) + -1" (pointer_expression "*(int *)(this_00 + 0x18)" * (cast_expression "(int *)(this_00 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this_00 + 0x18)" ( (binary_expression "this_00 + 0x18" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar3 = return_or_queue(this_00,pTVar5,false,apTStack_48);" (assignment_expression "iVar3 = return_or_queue(this_00,pTVar5,false,apTStack_48)" identifier = (call_expression "return_or_queue(this_00,pTVar5,false,apTStack_48)" identifier (argument_list "(this_00,pTVar5,false,apTStack_48)" ( identifier , identifier , false , identifier )))) ;) }) while (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) ;) (labeled_statement "LAB_002d398c:\n      iVar3 = *piVar7;" statement_identifier : (expression_statement "iVar3 = *piVar7;" (assignment_expression "iVar3 = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;)) (expression_statement "piVar8 = piVar8 + 1;" (assignment_expression "piVar8 = piVar8 + 1" identifier = (binary_expression "piVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar8 != piVar7 + iVar3 + 1)" ( (binary_expression "piVar8 != piVar7 + iVar3 + 1" identifier != (binary_expression "piVar7 + iVar3 + 1" (binary_expression "piVar7 + iVar3" identifier + identifier) + number_literal)) )) ;) }))) (return_statement "return apTStack_48[0];" return (subscript_expression "apTStack_48[0]" identifier [ number_literal ]) ;) (labeled_statement "LAB_002d3a94:\n  uVar6 = 0x53;" statement_identifier : (expression_statement "uVar6 = 0x53;" (assignment_expression "uVar6 = 0x53" identifier = number_literal) ;)) (labeled_statement "LAB_002d3a60:\n  uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                    (*(int *)(puVar9 + 0x1ee098) + 0x39bc,uVar6,*(int *)(puVar9 + 0x1ee098) + 0x3aa0\n                    );" statement_identifier : (expression_statement "uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                    (*(int *)(puVar9 + 0x1ee098) + 0x39bc,uVar6,*(int *)(puVar9 + 0x1ee098) + 0x3aa0\n                    );" (assignment_expression "uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                    (*(int *)(puVar9 + 0x1ee098) + 0x39bc,uVar6,*(int *)(puVar9 + 0x1ee098) + 0x3aa0\n                    )" identifier = (call_expression "(**(code **)(puVar9 + 0x1ee1ac))\n                    (*(int *)(puVar9 + 0x1ee098) + 0x39bc,uVar6,*(int *)(puVar9 + 0x1ee098) + 0x3aa0\n                    )" (parenthesized_expression "(**(code **)(puVar9 + 0x1ee1ac))" ( (pointer_expression "**(code **)(puVar9 + 0x1ee1ac)" * (pointer_expression "*(code **)(puVar9 + 0x1ee1ac)" * (cast_expression "(code **)(puVar9 + 0x1ee1ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0x1ee1ac)" ( (binary_expression "puVar9 + 0x1ee1ac" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar9 + 0x1ee098) + 0x39bc,uVar6,*(int *)(puVar9 + 0x1ee098) + 0x3aa0\n                    )" ( (binary_expression "*(int *)(puVar9 + 0x1ee098) + 0x39bc" (pointer_expression "*(int *)(puVar9 + 0x1ee098)" * (cast_expression "(int *)(puVar9 + 0x1ee098)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0x1ee098)" ( (binary_expression "puVar9 + 0x1ee098" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(puVar9 + 0x1ee098) + 0x3aa0" (pointer_expression "*(int *)(puVar9 + 0x1ee098)" * (cast_expression "(int *)(puVar9 + 0x1ee098)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0x1ee098)" ( (binary_expression "puVar9 + 0x1ee098" identifier + number_literal) )))) + number_literal) )))) ;)) (return_statement "return uVar6;" return identifier ;) })))
(translation_unit "/* DWARF original prototype: bool return_or_queue(Workqueue * this, Task * t, bool is_blocker, Task\n   * * pret) */\n\nbool __thiscall\ngold::Workqueue::return_or_queue(Workqueue *this,Task *t,bool is_blocker,Task **pret)\n\n{\n  long lVar1;\n  undefined3 extraout_var;\n  undefined3 extraout_var_00;\n  Task *pTVar2;\n  Condvar_impl *pCVar3;\n  Task *pTVar4;\n  bool bVar8;\n  undefined1 uVar9;\n  Lock_impl *pLVar5;\n  _func_int_varargs **pp_Var6;\n  int iVar7;\n  size_type sVar10;\n  int iVar11;\n  size_type *psVar12;\n  size_type *psVar13;\n  size_type *psVar14;\n  Workqueue *pWVar15;\n  undefined4 *puVar16;\n  undefined4 *puVar17;\n  Workqueue *pWVar18;\n  Workqueue *this_00;\n  Task *pTVar19;\n  long *plVar20;\n  _Alloc_hider _Var21;\n  int iVar22;\n  pointer pcVar23;\n  undefined3 in_register_00000018;\n  int *piVar24;\n  pointer pcVar25;\n  size_type *psVar26;\n  char *pcVar27;\n  int *piVar28;\n  undefined4 uVar29;\n  _func_int_varargs *p_Var30;\n  _func_int_varargs *p_Var31;\n  undefined *puVar32;\n  code *pcVar33;\n  code *pcVar34;\n  _func_int_varargs *p_Var35;\n  Timer TStack_168;\n  _Alloc_hider _Stack_138;\n  size_type sStack_134;\n  size_type asStack_130 [4];\n  undefined4 auStack_120 [5];\n  TimeStats TStack_10c;\n  code *pcStack_100;\n  long *plStack_fc;\n  int iStack_f8;\n  _func_int_varargs *p_Stack_f4;\n  pointer pcStack_f0;\n  int iStack_ec;\n  size_type *psStack_e8;\n  size_type *psStack_e4;\n  size_type *psStack_e0;\n  size_type *psStack_dc;\n  Workqueue *pWStack_d8;\n  undefined4 *puStack_d4;\n  undefined4 uStack_d0;\n  int *piStack_cc;\n  int iStack_c8;\n  Workqueue *pWStack_c4;\n  Task **ppTStack_c0;\n  Task *apTStack_48 [2];\n  Workqueue *pWStack_40;\n  \n  if (t->_vptr_Task[2] == (_func_int_varargs *)PTR_is_runnable_004c4b34) {\n    pTVar2 = t[1].list_next_;\n    if (*(char *)&pTVar2->_vptr_Task != '\0') {\n      if ((int)pTVar2->list_next_ < 1) goto LAB_002d3724;\nLAB_002d36ac:\n      if (t->list_next_ == (Task *)0x0) {\n        if ((pTVar2->name_)._M_string_length == 0) {\n          (pTVar2->name_)._M_string_length = (size_type)t;\n          (pTVar2->name_).field_2._M_allocated_capacity = (size_type)t;\nLAB_002d36dc:\n          this->waiting_ = this->waiting_ + 1;\n          return false;\n        }\n        sVar10 = (pTVar2->name_).field_2._M_allocated_capacity;\n        if (*(int *)(sVar10 + 4) == 0) {\n          *(Task **)(sVar10 + 4) = t;\n          (pTVar2->name_).field_2._M_allocated_capacity = (size_type)t;\n          goto LAB_002d36dc;\n        }\n        goto LAB_002d386c;\n      }\n      goto LAB_002d3834;\n    }\n  }\n  else {\n    pTVar2 = (Task *)(*t->_vptr_Task[2])(t);\n    if (pTVar2 != (Task *)0x0) goto LAB_002d36ac;\nLAB_002d3724:\n    if (*pret == (Task *)0x0) {\n      if (((CONCAT31(in_register_00000018,is_blocker) == 0) || (t->should_run_soon_ != false)) ||\n         (((this->first_tasks_).head_ == (Task *)0x0 && ((this->tasks_).head_ == (Task *)0x0)))) {\n        *pret = t;\n        return true;\n      }\n      pTVar2 = t->list_next_;\n    }\n    else {\n      pTVar2 = t->list_next_;\n      if (t->should_run_soon_ != false) {\n        if (pTVar2 == (Task *)0x0) {\n          if ((this->first_tasks_).head_ == (Task *)0x0) {\n            (this->first_tasks_).head_ = t;\n            (this->first_tasks_).tail_ = t;\n            goto LAB_002d3768;\n          }\n          pTVar2 = (this->first_tasks_).tail_;\n          if (pTVar2->list_next_ == (Task *)0x0) {\n            pTVar2->list_next_ = t;\n            (this->first_tasks_).tail_ = t;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }\n        goto LAB_002d3834;\n      }\n    }\n    if (pTVar2 == (Task *)0x0) {\n      if ((this->tasks_).head_ == (Task *)0x0) {\n        (this->tasks_).head_ = t;\n        (this->tasks_).tail_ = t;\nLAB_002d3768:\n        pCVar3 = (this->condvar_).condvar_;\n        (*pCVar3->_vptr_Condvar_impl[3])(pCVar3);\n        return false;\n      }\n      pTVar2 = (this->tasks_).tail_;\n      if (pTVar2->list_next_ == (Task *)0x0) {\n        pTVar2->list_next_ = t;\n        (this->tasks_).tail_ = t;\n        goto LAB_002d3768;\n      }\n      goto LAB_002d386c;\n    }\nLAB_002d3834:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x39bc,0x29,\n               PTR_s_in_a_linker_script_004c191c + 0x3aac);\n  }\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x7f8,0xab,\n             PTR_s_in_a_linker_script_004c191c + 0x3ad4);\nLAB_002d386c:\n  iVar22 = 0x5a;\n  piVar24 = (int *)(PTR_s_in_a_linker_script_004c191c + 0x3ab8);\n  pWVar15 = (Workqueue *)(PTR_s__s_004c1a50 + 0x970);\n  puVar32 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)();\n  iVar11 = *piVar24;\n  piVar28 = piVar24 + 1;\n  apTStack_48[0] = (Task *)0x0;\n  if (piVar28 == piVar24 + iVar11 + 1) {\n    uVar9 = 0;\n  }\n  else {\n    uVar29 = *(undefined4 *)(puVar32 + 0x1f12c4);\n    pWStack_40 = this;\n    do {\n      while (pcVar27 = (char *)*piVar28, *pcVar27 == '\0') {\n        if (iVar22 != *(int *)(pcVar27 + 8)) {\n          iVar11 = 0x84;\n          pcVar33 = *(code **)(puVar32 + 0x1ee1ac);\n          puVar16 = (undefined4 *)(*(int *)(puVar32 + 0x1ed9f8) + -0x7f8);\n          (*pcVar33)(puVar16,0x84,*(int *)(puVar32 + 0x1ee098) + 0x3a5c);\n          (**(code **)(*(int *)*puVar16 + 8))((int *)*puVar16);\n          pcVar34 = *(code **)(*(int *)puVar16[9] + 8);\n          if (pcVar34 == *(code **)(pcVar33 + 0x1f1098)) {\n            if (iVar11 < 1) {\n              pcVar27 = &DAT_0000006e;\n              puVar17 = (undefined4 *)(*(int *)(pcVar33 + 0x1ede68) + 0x39bc);\n              (**(code **)(pcVar33 + 0x1edf7c))(puVar17,0x6e,*(int *)(pcVar33 + 0x1ede68) + 0x3aec);\n              (**(code **)(*(int *)*puVar16 + 0xc))((int *)*puVar16);\n              pcVar33 = *(code **)(pcVar33 + 0x1ed814);\n              (*pcVar33)();\n              (**(code **)(*(int *)*puVar17 + 8))((int *)*puVar17);\n              if (*pcVar27 != '\0') {\n                piVar24 = (int *)*puVar17;\n                iVar11 = *piVar24;\n                pcVar27[8] = '\0';\n                pcVar27[9] = '\0';\n                pcVar27[10] = '\0';\n                pcVar27[0xb] = '\0';\n                *(int *)(pcVar27 + 4) = *(int *)(pcVar27 + 4) + 1;\n                    /* WARNING: Could not recover jumptable at 0x002d3c1c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                uVar9 = (**(code **)(iVar11 + 0xc))(piVar24);\n                return (bool)uVar9;\n              }\n              iVar11 = 0x8e;\n              pWVar18 = (Workqueue *)(*(int *)(pcVar33 + 0x1ed6d4) + -0x7f8);\n              (**(code **)(pcVar33 + 0x1ede88))(pWVar18,0x8e,*(int *)(pcVar33 + 0x1edd74) + 0x3a50);\n              (**(code **)(*(int *)*puVar17 + 0xc))((int *)*puVar17);\n              pcVar33 = *(code **)(pcVar33 + 0x1ed720);\n              this_00 = pWVar18;\n              (*pcVar33)();\n              pLVar5 = (this_00->lock_).lock_;\n              auStack_120[0] = 0;\n              pWStack_d8 = pWVar18;\n              puStack_d4 = puVar17;\n              uStack_d0 = uVar29;\n              piStack_cc = piVar24;\n              iStack_c8 = iVar22;\n              pWStack_c4 = pWVar15;\n              ppTStack_c0 = apTStack_48;\n              (*pLVar5->_vptr_Lock_impl[2])(pLVar5);\n              pTVar2 = find_runnable_or_wait(this_00,iVar11);\n              if (pTVar2 == (Task *)0x0) {\n                pLVar5 = (this_00->lock_).lock_;\n                (*pLVar5->_vptr_Lock_impl[3])(pLVar5);\n                return false;\n              }\n              p_Var31 = *(_func_int_varargs **)(pcVar33 + 0x1f0ee8);\n              if (pTVar2->_vptr_Task[3] != p_Var31) {\n                (*pTVar2->_vptr_Task[3])(pTVar2,auStack_120);\n              }\n              pLVar5 = (this_00->lock_).lock_;\n              plStack_fc = &TStack_168.start_time_.wall;\n              pcStack_100 = *(code **)(pcVar33 + 0x1f0eec);\n              p_Stack_f4 = *(_func_int_varargs **)(pcVar33 + 0x1f0ef0);\n              piVar24 = *(int **)(pcVar33 + 0x1edd48);\n              p_Var30 = *(_func_int_varargs **)(pcVar33 + 0x1f0ef4);\n              p_Var35 = pLVar5->_vptr_Lock_impl[3];\n              this_00->running_ = this_00->running_ + 1;\n              (*p_Var35)(pLVar5);\n              iStack_f8 = *(int *)(pcVar33 + 0x1edcb0) + 0x39f0;\n              iStack_ec = *(int *)(pcVar33 + 0x1edcb0) + 0x3a08;\n              iVar22 = *(int *)(pcVar33 + 0x1ee464);\n              goto LAB_002d3eac;\n            }\n            piVar24 = (int *)puVar16[8];\n          }\n          else {\n            (*pcVar34)((int *)puVar16[9],iVar11);\n            piVar24 = (int *)puVar16[8];\n          }\n          (**(code **)(*piVar24 + 0x10))(piVar24);\n                    /* WARNING: Could not recover jumptable at 0x002d3b4c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar9 = (**(code **)(*(int *)*puVar16 + 0xc))((int *)*puVar16);\n          return (bool)uVar9;\n        }\n        pcVar27[8] = '\0';\n        pcVar27[9] = '\0';\n        pcVar27[10] = '\0';\n        pcVar27[0xb] = '\0';\n        do {\n          pTVar2 = *(Task **)(pcVar27 + 0xc);\n          if (pTVar2 == (Task *)0x0) break;\n          pTVar4 = pTVar2->list_next_;\n          if (pTVar2 == *(Task **)(pcVar27 + 0x10)) {\n            if (pTVar4 != (Task *)0x0) goto LAB_002d3a94;\n            pcVar27[0xc] = '\0';\n            pcVar27[0xd] = '\0';\n            pcVar27[0xe] = '\0';\n            pcVar27[0xf] = '\0';\n            pcVar27[0x10] = '\0';\n            pcVar27[0x11] = '\0';\n            pcVar27[0x12] = '\0';\n            pcVar27[0x13] = '\0';\n          }\n          else {\n            *(Task **)(pcVar27 + 0xc) = pTVar4;\n            if (pTVar4 == (Task *)0x0) goto LAB_002d3a5c;\n            pTVar2->list_next_ = (Task *)0x0;\n          }\n          pWVar15->waiting_ = pWVar15->waiting_ + -1;\n          bVar8 = return_or_queue(pWVar15,pTVar2,false,apTStack_48);\n        } while (CONCAT31(extraout_var,bVar8) == 0);\nLAB_002d398c:\n        iVar11 = *piVar24;\n        piVar28 = piVar28 + 1;\n        if (piVar28 == piVar24 + iVar11 + 1) {\n          return (bool)(char)apTStack_48[0];\n        }\n      }\n      iVar7 = *(int *)(pcVar27 + 4) + -1;\n      if (*(int *)(pcVar27 + 4) < 1) goto LAB_002d3a78;\n      pcVar27[8] = '\0';\n      pcVar27[9] = '\0';\n      pcVar27[10] = '\0';\n      pcVar27[0xb] = '\0';\n      *(int *)(pcVar27 + 4) = iVar7;\n      if ((iVar7 == 0) && (pTVar2 = *(Task **)(pcVar27 + 0xc), pTVar2 != (Task *)0x0)) {\n        pTVar4 = pTVar2->list_next_;\n        if (*(Task **)(pcVar27 + 0x10) == pTVar2) goto LAB_002d3a40;\n        while (*(Task **)(pcVar27 + 0xc) = pTVar4, pTVar4 != (Task *)0x0) {\n          pTVar2->list_next_ = (Task *)0x0;\n          while( true ) {\n            pWVar15->waiting_ = pWVar15->waiting_ + -1;\n            return_or_queue(pWVar15,pTVar2,true,apTStack_48);\n            pTVar2 = *(Task **)(pcVar27 + 0xc);\n            if (pTVar2 == (Task *)0x0) goto LAB_002d398c;\n            pTVar4 = pTVar2->list_next_;\n            if (*(Task **)(pcVar27 + 0x10) != pTVar2) break;\nLAB_002d3a40:\n            if (pTVar4 != (Task *)0x0) goto LAB_002d3a94;\n            pcVar27[0xc] = '\0';\n            pcVar27[0xd] = '\0';\n            pcVar27[0xe] = '\0';\n            pcVar27[0xf] = '\0';\n            pcVar27[0x10] = '\0';\n            pcVar27[0x11] = '\0';\n            pcVar27[0x12] = '\0';\n            pcVar27[0x13] = '\0';\n          }\n        }\nLAB_002d3a5c:\n        uVar29 = 0x5a;\n        do {\n          (**(code **)(puVar32 + 0x1ee1ac))\n                    (*(int *)(puVar32 + 0x1ee098) + 0x39bc,uVar29,\n                     *(int *)(puVar32 + 0x1ee098) + 0x3aa0);\nLAB_002d3a78:\n          (**(code **)(puVar32 + 0x1ee1ac))\n                    (*(int *)(puVar32 + 0x1ed9f8) + -0x7f8,0xa1,\n                     *(int *)(puVar32 + 0x1ee098) + 0x3a6c);\nLAB_002d3a94:\n          uVar29 = 0x53;\n        } while( true );\n      }\n      piVar28 = piVar28 + 1;\n      uVar9 = SUB41(apTStack_48[0],0);\n    } while (piVar28 != piVar24 + iVar11 + 1);\n  }\n  return (bool)uVar9;\nLAB_002d3eac:\n  puVar16 = (undefined4 *)*piVar24;\n  if ((puVar16[2] != 0) && ((puVar16[5] & 1) != 0)) {\n    uVar29 = *puVar16;\n    if ((pTVar2->name_)._M_string_length == 0) {\n      if (pTVar2->_vptr_Task[5] == p_Stack_f4) {\n        pcVar23 = pTVar2[1].name_._M_dataplus._M_p;\n        TStack_168.start_time_.user = (long)plStack_fc;\n        if (pcVar23 == (pointer)0x0) {\n          pcVar25 = (pointer)0xffffffff;\n        }\n        else {\n          pcStack_f0 = pcVar23;\n          iVar7 = (**(code **)(pcVar33 + 0x1f1f30))(pcVar23);\n          pcVar25 = pcStack_f0 + iVar7;\n          pcVar23 = pcStack_f0;\n        }\n        (**(code **)(pcVar33 + 0x1edefc))(&TStack_168,pcVar23,pcVar25,0);\n      }\n      else {\n        (*pTVar2->_vptr_Task[5])(&TStack_168,pTVar2);\n      }\n      plVar20 = (long *)(pTVar2->name_)._M_dataplus._M_p;\n      if ((long *)TStack_168.start_time_.user == plStack_fc) {\n        if (TStack_168.start_time_.sys != 0) {\n          if (TStack_168.start_time_.sys == 1) {\n            *(char *)plVar20 = TStack_168.start_time_.wall._0_1_;\n            plVar20 = (long *)(pTVar2->name_)._M_dataplus._M_p;\n          }\n          else {\n            (**(code **)(pcVar33 + 0x1f1f3c))(plVar20,plStack_fc);\n            plVar20 = (long *)(pTVar2->name_)._M_dataplus._M_p;\n          }\n        }\n        (pTVar2->name_)._M_string_length = TStack_168.start_time_.sys;\n        *(char *)((int)plVar20 + TStack_168.start_time_.sys) = '\0';\n        sVar10 = TStack_168.start_time_.wall;\n      }\n      else {\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)plVar20 == &(pTVar2->name_).field_2) {\n          (pTVar2->name_)._M_dataplus._M_p = (pointer)TStack_168.start_time_.user;\n          (pTVar2->name_)._M_string_length = TStack_168.start_time_.sys;\n          (pTVar2->name_).field_2._M_allocated_capacity = TStack_168.start_time_.wall;\n        }\n        else {\n          sVar10 = (pTVar2->name_).field_2._M_allocated_capacity;\n          (pTVar2->name_)._M_dataplus._M_p = (pointer)TStack_168.start_time_.user;\n          (pTVar2->name_)._M_string_length = TStack_168.start_time_.sys;\n          (pTVar2->name_).field_2._M_allocated_capacity = TStack_168.start_time_.wall;\n          TStack_168.start_time_.user = (long)plVar20;\n          if (plVar20 != (long *)0x0) goto LAB_002d3f6c;\n        }\n        TStack_168.start_time_.user = (long)plStack_fc;\n        sVar10 = TStack_168.start_time_.wall;\n      }\nLAB_002d3f6c:\n      TStack_168.start_time_.wall = sVar10;\n      TStack_168.start_time_.sys = 0;\n      *(char *)TStack_168.start_time_.user = '\0';\n      if ((long *)TStack_168.start_time_.user != plStack_fc) {\n        (**(code **)(pcVar33 + 0x1ed690))();\n      }\n    }\n    (**(code **)(pcVar33 + 0x1ee3ac))(uVar29,iStack_f8,iVar11,(pTVar2->name_)._M_dataplus._M_p);\n  }\n  Timer::Timer(&TStack_168);\n  if ((*(int *)(*piVar24 + 8) != 0) && ((*(uint *)(*piVar24 + 0x14) & 1) != 0)) {\n    Timer::start(&TStack_168);\n  }\n  if (pTVar2->_vptr_Task[4] == p_Var30) {\n    (**(code **)(*pTVar2[1]._vptr_Task + 8))(pTVar2[1]._vptr_Task,this_00);\n  }\n  else {\n    (*pTVar2->_vptr_Task[4])(pTVar2,this_00,pTVar2);\n  }\n  if ((*(int *)(*piVar24 + 8) == 0) || ((*(uint *)(*piVar24 + 0x14) & 1) == 0)) {\nLAB_002d3d6c:\n    pLVar5 = (this_00->lock_).lock_;\n  }\n  else {\n    Timer::get_elapsed_time(&TStack_10c,&TStack_168);\n    lVar1 = TStack_10c.user;\n    puVar16 = (undefined4 *)*piVar24;\n    if ((puVar16[2] == 0) || ((puVar16[5] & 1) == 0)) goto LAB_002d3d6c;\n    pcStack_f0 = (pointer)*puVar16;\n    psVar12 = (size_type *)TStack_10c.sys;\n    psVar26 = (size_type *)TStack_10c.wall;\n    if ((pTVar2->name_)._M_string_length == 0) {\n      psVar12 = asStack_130;\n      if (pTVar2->_vptr_Task[5] == p_Stack_f4) {\n        psStack_e8 = (size_type *)pTVar2[1].name_._M_dataplus._M_p;\n        _Stack_138._M_p = (pointer)psVar12;\n        if (psStack_e8 == (size_type *)0x0) {\n          pcVar23 = (pointer)0xffffffff;\n          psStack_e0 = (size_type *)TStack_10c.sys;\n          psStack_e4 = (size_type *)TStack_10c.wall;\n        }\n        else {\n          psStack_e0 = (size_type *)TStack_10c.sys;\n          psStack_e4 = (size_type *)TStack_10c.wall;\n          psStack_dc = psVar12;\n          iVar7 = (**(code **)(pcVar33 + 0x1f1f30))(psStack_e8);\n          pcVar23 = (pointer)((int)psStack_e8 + iVar7);\n          psVar12 = psStack_dc;\n        }\n        pcVar25 = (pointer)psStack_e8;\n        psStack_e8 = psStack_e4;\n        psStack_e4 = psStack_e0;\n        psStack_e0 = psVar12;\n        (**(code **)(pcVar33 + 0x1edefc))(&_Stack_138,pcVar25,pcVar23,0);\n        psVar14 = psStack_e0;\n        psVar12 = psStack_e4;\n        psVar26 = psStack_e8;\n      }\n      else {\n        psStack_e0 = (size_type *)TStack_10c.sys;\n        psStack_e4 = (size_type *)TStack_10c.wall;\n        psStack_e8 = psVar12;\n        (*pTVar2->_vptr_Task[5])(&_Stack_138,pTVar2);\n        psVar14 = psStack_e8;\n        psVar12 = psStack_e0;\n        psVar26 = psStack_e4;\n      }\n      _Var21._M_p = (pTVar2->name_)._M_dataplus._M_p;\n      if ((size_type *)_Stack_138._M_p == psVar14) {\n        if (sStack_134 != 0) {\n          if (sStack_134 == 1) {\n            *_Var21._M_p = asStack_130[0]._0_1_;\n            _Var21._M_p = (pTVar2->name_)._M_dataplus._M_p;\n          }\n          else {\n            psStack_e8 = psVar14;\n            psStack_e4 = psVar26;\n            psStack_e0 = psVar12;\n            (**(code **)(pcVar33 + 0x1f1f3c))(_Var21._M_p,psVar14);\n            _Var21._M_p = (pTVar2->name_)._M_dataplus._M_p;\n            psVar14 = psStack_e8;\n            psVar12 = psStack_e0;\n            psVar26 = psStack_e4;\n          }\n        }\n        (pTVar2->name_)._M_string_length = sStack_134;\n        *(_Var21._M_p + sStack_134) = '\0';\n        psVar13 = psVar14;\n        _Var21._M_p = _Stack_138._M_p;\n        sVar10 = asStack_130[0];\n      }\n      else {\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)_Var21._M_p == &(pTVar2->name_).field_2) {\n          (pTVar2->name_)._M_dataplus._M_p = _Stack_138._M_p;\n          (pTVar2->name_)._M_string_length = sStack_134;\n          (pTVar2->name_).field_2._M_allocated_capacity = asStack_130[0];\n        }\n        else {\n          sVar10 = (pTVar2->name_).field_2._M_allocated_capacity;\n          (pTVar2->name_)._M_dataplus._M_p = _Stack_138._M_p;\n          (pTVar2->name_)._M_string_length = sStack_134;\n          (pTVar2->name_).field_2._M_allocated_capacity = asStack_130[0];\n          psVar13 = psVar14;\n          _Stack_138._M_p = _Var21._M_p;\n          if ((size_type *)_Var21._M_p != (size_type *)0x0) goto LAB_002d4130;\n        }\n        psVar13 = asStack_130;\n        _Var21._M_p = (pointer)asStack_130;\n        _Stack_138._M_p = (pointer)psVar14;\n        sVar10 = asStack_130[0];\n      }\nLAB_002d4130:\n      asStack_130[0] = sVar10;\n      sStack_134 = 0;\n      *_Var21._M_p = '\0';\n      if ((size_type *)_Stack_138._M_p != psVar13) {\n        psStack_e8 = psVar26;\n        psStack_e4 = psVar12;\n        (**(code **)(pcVar33 + 0x1ed690))();\n        psVar12 = psStack_e4;\n        psVar26 = psStack_e8;\n      }\n    }\n    (**(code **)(pcVar33 + 0x1ee3ac))\n              (pcStack_f0,iStack_ec,iVar11,(pTVar2->name_)._M_dataplus._M_p,lVar1 / 1000,\n               (lVar1 % 1000) * 1000,(int)psVar12 / 1000,((int)psVar12 % 1000) * 1000,\n               (int)psVar26 / 1000,((int)psVar26 % 1000) * 1000);\n    pLVar5 = (this_00->lock_).lock_;\n  }\n  (*pLVar5->_vptr_Lock_impl[2])(pLVar5);\n  this_00->running_ = this_00->running_ + -1;\n  pTVar4 = (Task *)(*pcStack_100)(this_00,pTVar2,auStack_120);\n  if (pTVar4 == (Task *)0x0) {\n    pTVar4 = find_runnable(this_00);\n    if (pTVar4 != (Task *)0x0) {\n      pp_Var6 = pTVar4->_vptr_Task;\n      goto LAB_002d3db4;\n    }\n  }\n  else {\n    pp_Var6 = pTVar4->_vptr_Task;\nLAB_002d3db4:\n    auStack_120[0] = 0;\n    if (pp_Var6[3] == p_Var31) {\n      iVar7 = this_00->running_;\n    }\n    else {\n      (*pp_Var6[3])(pTVar4,auStack_120);\n      iVar7 = this_00->running_;\n    }\n    this_00->running_ = iVar7 + 1;\n  }\n  pLVar5 = (this_00->lock_).lock_;\n  (*pLVar5->_vptr_Lock_impl[3])(pLVar5);\n  if (pTVar2->_vptr_Task[1] == *(_func_int_varargs **)(pcVar33 + 0x1f0ef8)) {\n    pTVar2->_vptr_Task = (_func_int_varargs **)(iVar22 + 8);\n    if (pTVar2[1]._vptr_Task != (_func_int_varargs **)0x0) {\n      (**(code **)(*pTVar2[1]._vptr_Task + 4))();\n    }\n    pTVar19 = pTVar2[1].list_next_;\n    iVar7 = *(int *)(pcVar33 + 0x1ee7e4);\n    if (pTVar19 != (Task *)0x0) {\n      iVar7 = 100;\n      if ((pTVar19->list_next_ != (Task *)0x0) ||\n         (iVar7 = 0x65, (pTVar19->name_)._M_dataplus._M_p != (pointer)0x0)) {\nLAB_002d4440:\n        pWVar15 = (Workqueue *)(*(int *)(pcVar33 + 0x1ed610) + -0x7f8);\n        (**(code **)(pcVar33 + 0x1eddc4))();\n        pLVar5 = (this_00->lock_).lock_;\n        (*pLVar5->_vptr_Lock_impl[3])(pLVar5);\n        (**(code **)(pcVar33 + 0x1ed65c))();\n        pLVar5 = (this_00->lock_).lock_;\n        (*pLVar5->_vptr_Lock_impl[3])(pLVar5);\n        (**(code **)(pcVar33 + 0x1ed65c))();\n        do {\n          bVar8 = find_and_run_task(pWVar15,iVar7);\n        } while (CONCAT31(extraout_var_00,bVar8) != 0);\n        return bVar8;\n      }\n      if (((pTVar19->name_)._M_string_length != 0) ||\n         ((pTVar19->name_).field_2._M_allocated_capacity != 0)) {\n        iVar7 = 0x2c;\n        (**(code **)(pcVar33 + 0x1eddc4))\n                  (*(int *)(pcVar33 + 0x1ed610) + -0x7f8,0x2c,*(int *)(pcVar33 + 0x1edcb0) + 0x3ae0)\n        ;\n        goto LAB_002d4440;\n      }\n      (**(code **)(pcVar33 + 0x1ed7b8))(pTVar19,0x14);\n      iVar7 = *(int *)(pcVar33 + 0x1ee7e4);\n    }\n    pcVar23 = (pTVar2->name_)._M_dataplus._M_p;\n    pTVar2->_vptr_Task = (_func_int_varargs **)(iVar7 + 8);\n    if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)pcVar23 != &(pTVar2->name_).field_2) {\n      (**(code **)(pcVar33 + 0x1ed690))();\n    }\n    (**(code **)(pcVar33 + 0x1ed7b8))(pTVar2,0x30);\n  }\n  else {\n    (*pTVar2->_vptr_Task[1])(pTVar2);\n  }\n  pTVar2 = pTVar4;\n  if (pTVar4 == (Task *)0x0) {\n    return true;\n  }\n  goto LAB_002d3eac;\n}\n\n" comment (function_definition "bool __thiscall\ngold::Workqueue::return_or_queue(Workqueue *this,Task *t,bool is_blocker,Task **pret)\n\n{\n  long lVar1;\n  undefined3 extraout_var;\n  undefined3 extraout_var_00;\n  Task *pTVar2;\n  Condvar_impl *pCVar3;\n  Task *pTVar4;\n  bool bVar8;\n  undefined1 uVar9;\n  Lock_impl *pLVar5;\n  _func_int_varargs **pp_Var6;\n  int iVar7;\n  size_type sVar10;\n  int iVar11;\n  size_type *psVar12;\n  size_type *psVar13;\n  size_type *psVar14;\n  Workqueue *pWVar15;\n  undefined4 *puVar16;\n  undefined4 *puVar17;\n  Workqueue *pWVar18;\n  Workqueue *this_00;\n  Task *pTVar19;\n  long *plVar20;\n  _Alloc_hider _Var21;\n  int iVar22;\n  pointer pcVar23;\n  undefined3 in_register_00000018;\n  int *piVar24;\n  pointer pcVar25;\n  size_type *psVar26;\n  char *pcVar27;\n  int *piVar28;\n  undefined4 uVar29;\n  _func_int_varargs *p_Var30;\n  _func_int_varargs *p_Var31;\n  undefined *puVar32;\n  code *pcVar33;\n  code *pcVar34;\n  _func_int_varargs *p_Var35;\n  Timer TStack_168;\n  _Alloc_hider _Stack_138;\n  size_type sStack_134;\n  size_type asStack_130 [4];\n  undefined4 auStack_120 [5];\n  TimeStats TStack_10c;\n  code *pcStack_100;\n  long *plStack_fc;\n  int iStack_f8;\n  _func_int_varargs *p_Stack_f4;\n  pointer pcStack_f0;\n  int iStack_ec;\n  size_type *psStack_e8;\n  size_type *psStack_e4;\n  size_type *psStack_e0;\n  size_type *psStack_dc;\n  Workqueue *pWStack_d8;\n  undefined4 *puStack_d4;\n  undefined4 uStack_d0;\n  int *piStack_cc;\n  int iStack_c8;\n  Workqueue *pWStack_c4;\n  Task **ppTStack_c0;\n  Task *apTStack_48 [2];\n  Workqueue *pWStack_40;\n  \n  if (t->_vptr_Task[2] == (_func_int_varargs *)PTR_is_runnable_004c4b34) {\n    pTVar2 = t[1].list_next_;\n    if (*(char *)&pTVar2->_vptr_Task != '\0') {\n      if ((int)pTVar2->list_next_ < 1) goto LAB_002d3724;\nLAB_002d36ac:\n      if (t->list_next_ == (Task *)0x0) {\n        if ((pTVar2->name_)._M_string_length == 0) {\n          (pTVar2->name_)._M_string_length = (size_type)t;\n          (pTVar2->name_).field_2._M_allocated_capacity = (size_type)t;\nLAB_002d36dc:\n          this->waiting_ = this->waiting_ + 1;\n          return false;\n        }\n        sVar10 = (pTVar2->name_).field_2._M_allocated_capacity;\n        if (*(int *)(sVar10 + 4) == 0) {\n          *(Task **)(sVar10 + 4) = t;\n          (pTVar2->name_).field_2._M_allocated_capacity = (size_type)t;\n          goto LAB_002d36dc;\n        }\n        goto LAB_002d386c;\n      }\n      goto LAB_002d3834;\n    }\n  }\n  else {\n    pTVar2 = (Task *)(*t->_vptr_Task[2])(t);\n    if (pTVar2 != (Task *)0x0) goto LAB_002d36ac;\nLAB_002d3724:\n    if (*pret == (Task *)0x0) {\n      if (((CONCAT31(in_register_00000018,is_blocker) == 0) || (t->should_run_soon_ != false)) ||\n         (((this->first_tasks_).head_ == (Task *)0x0 && ((this->tasks_).head_ == (Task *)0x0)))) {\n        *pret = t;\n        return true;\n      }\n      pTVar2 = t->list_next_;\n    }\n    else {\n      pTVar2 = t->list_next_;\n      if (t->should_run_soon_ != false) {\n        if (pTVar2 == (Task *)0x0) {\n          if ((this->first_tasks_).head_ == (Task *)0x0) {\n            (this->first_tasks_).head_ = t;\n            (this->first_tasks_).tail_ = t;\n            goto LAB_002d3768;\n          }\n          pTVar2 = (this->first_tasks_).tail_;\n          if (pTVar2->list_next_ == (Task *)0x0) {\n            pTVar2->list_next_ = t;\n            (this->first_tasks_).tail_ = t;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }\n        goto LAB_002d3834;\n      }\n    }\n    if (pTVar2 == (Task *)0x0) {\n      if ((this->tasks_).head_ == (Task *)0x0) {\n        (this->tasks_).head_ = t;\n        (this->tasks_).tail_ = t;\nLAB_002d3768:\n        pCVar3 = (this->condvar_).condvar_;\n        (*pCVar3->_vptr_Condvar_impl[3])(pCVar3);\n        return false;\n      }\n      pTVar2 = (this->tasks_).tail_;\n      if (pTVar2->list_next_ == (Task *)0x0) {\n        pTVar2->list_next_ = t;\n        (this->tasks_).tail_ = t;\n        goto LAB_002d3768;\n      }\n      goto LAB_002d386c;\n    }\nLAB_002d3834:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x39bc,0x29,\n               PTR_s_in_a_linker_script_004c191c + 0x3aac);\n  }\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x7f8,0xab,\n             PTR_s_in_a_linker_script_004c191c + 0x3ad4);\nLAB_002d386c:\n  iVar22 = 0x5a;\n  piVar24 = (int *)(PTR_s_in_a_linker_script_004c191c + 0x3ab8);\n  pWVar15 = (Workqueue *)(PTR_s__s_004c1a50 + 0x970);\n  puVar32 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)();\n  iVar11 = *piVar24;\n  piVar28 = piVar24 + 1;\n  apTStack_48[0] = (Task *)0x0;\n  if (piVar28 == piVar24 + iVar11 + 1) {\n    uVar9 = 0;\n  }\n  else {\n    uVar29 = *(undefined4 *)(puVar32 + 0x1f12c4);\n    pWStack_40 = this;\n    do {\n      while (pcVar27 = (char *)*piVar28, *pcVar27 == '\0') {\n        if (iVar22 != *(int *)(pcVar27 + 8)) {\n          iVar11 = 0x84;\n          pcVar33 = *(code **)(puVar32 + 0x1ee1ac);\n          puVar16 = (undefined4 *)(*(int *)(puVar32 + 0x1ed9f8) + -0x7f8);\n          (*pcVar33)(puVar16,0x84,*(int *)(puVar32 + 0x1ee098) + 0x3a5c);\n          (**(code **)(*(int *)*puVar16 + 8))((int *)*puVar16);\n          pcVar34 = *(code **)(*(int *)puVar16[9] + 8);\n          if (pcVar34 == *(code **)(pcVar33 + 0x1f1098)) {\n            if (iVar11 < 1) {\n              pcVar27 = &DAT_0000006e;\n              puVar17 = (undefined4 *)(*(int *)(pcVar33 + 0x1ede68) + 0x39bc);\n              (**(code **)(pcVar33 + 0x1edf7c))(puVar17,0x6e,*(int *)(pcVar33 + 0x1ede68) + 0x3aec);\n              (**(code **)(*(int *)*puVar16 + 0xc))((int *)*puVar16);\n              pcVar33 = *(code **)(pcVar33 + 0x1ed814);\n              (*pcVar33)();\n              (**(code **)(*(int *)*puVar17 + 8))((int *)*puVar17);\n              if (*pcVar27 != '\0') {\n                piVar24 = (int *)*puVar17;\n                iVar11 = *piVar24;\n                pcVar27[8] = '\0';\n                pcVar27[9] = '\0';\n                pcVar27[10] = '\0';\n                pcVar27[0xb] = '\0';\n                *(int *)(pcVar27 + 4) = *(int *)(pcVar27 + 4) + 1;\n                    /* WARNING: Could not recover jumptable at 0x002d3c1c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                uVar9 = (**(code **)(iVar11 + 0xc))(piVar24);\n                return (bool)uVar9;\n              }\n              iVar11 = 0x8e;\n              pWVar18 = (Workqueue *)(*(int *)(pcVar33 + 0x1ed6d4) + -0x7f8);\n              (**(code **)(pcVar33 + 0x1ede88))(pWVar18,0x8e,*(int *)(pcVar33 + 0x1edd74) + 0x3a50);\n              (**(code **)(*(int *)*puVar17 + 0xc))((int *)*puVar17);\n              pcVar33 = *(code **)(pcVar33 + 0x1ed720);\n              this_00 = pWVar18;\n              (*pcVar33)();\n              pLVar5 = (this_00->lock_).lock_;\n              auStack_120[0] = 0;\n              pWStack_d8 = pWVar18;\n              puStack_d4 = puVar17;\n              uStack_d0 = uVar29;\n              piStack_cc = piVar24;\n              iStack_c8 = iVar22;\n              pWStack_c4 = pWVar15;\n              ppTStack_c0 = apTStack_48;\n              (*pLVar5->_vptr_Lock_impl[2])(pLVar5);\n              pTVar2 = find_runnable_or_wait(this_00,iVar11);\n              if (pTVar2 == (Task *)0x0) {\n                pLVar5 = (this_00->lock_).lock_;\n                (*pLVar5->_vptr_Lock_impl[3])(pLVar5);\n                return false;\n              }\n              p_Var31 = *(_func_int_varargs **)(pcVar33 + 0x1f0ee8);\n              if (pTVar2->_vptr_Task[3] != p_Var31) {\n                (*pTVar2->_vptr_Task[3])(pTVar2,auStack_120);\n              }\n              pLVar5 = (this_00->lock_).lock_;\n              plStack_fc = &TStack_168.start_time_.wall;\n              pcStack_100 = *(code **)(pcVar33 + 0x1f0eec);\n              p_Stack_f4 = *(_func_int_varargs **)(pcVar33 + 0x1f0ef0);\n              piVar24 = *(int **)(pcVar33 + 0x1edd48);\n              p_Var30 = *(_func_int_varargs **)(pcVar33 + 0x1f0ef4);\n              p_Var35 = pLVar5->_vptr_Lock_impl[3];\n              this_00->running_ = this_00->running_ + 1;\n              (*p_Var35)(pLVar5);\n              iStack_f8 = *(int *)(pcVar33 + 0x1edcb0) + 0x39f0;\n              iStack_ec = *(int *)(pcVar33 + 0x1edcb0) + 0x3a08;\n              iVar22 = *(int *)(pcVar33 + 0x1ee464);\n              goto LAB_002d3eac;\n            }\n            piVar24 = (int *)puVar16[8];\n          }\n          else {\n            (*pcVar34)((int *)puVar16[9],iVar11);\n            piVar24 = (int *)puVar16[8];\n          }\n          (**(code **)(*piVar24 + 0x10))(piVar24);\n                    /* WARNING: Could not recover jumptable at 0x002d3b4c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar9 = (**(code **)(*(int *)*puVar16 + 0xc))((int *)*puVar16);\n          return (bool)uVar9;\n        }\n        pcVar27[8] = '\0';\n        pcVar27[9] = '\0';\n        pcVar27[10] = '\0';\n        pcVar27[0xb] = '\0';\n        do {\n          pTVar2 = *(Task **)(pcVar27 + 0xc);\n          if (pTVar2 == (Task *)0x0) break;\n          pTVar4 = pTVar2->list_next_;\n          if (pTVar2 == *(Task **)(pcVar27 + 0x10)) {\n            if (pTVar4 != (Task *)0x0) goto LAB_002d3a94;\n            pcVar27[0xc] = '\0';\n            pcVar27[0xd] = '\0';\n            pcVar27[0xe] = '\0';\n            pcVar27[0xf] = '\0';\n            pcVar27[0x10] = '\0';\n            pcVar27[0x11] = '\0';\n            pcVar27[0x12] = '\0';\n            pcVar27[0x13] = '\0';\n          }\n          else {\n            *(Task **)(pcVar27 + 0xc) = pTVar4;\n            if (pTVar4 == (Task *)0x0) goto LAB_002d3a5c;\n            pTVar2->list_next_ = (Task *)0x0;\n          }\n          pWVar15->waiting_ = pWVar15->waiting_ + -1;\n          bVar8 = return_or_queue(pWVar15,pTVar2,false,apTStack_48);\n        } while (CONCAT31(extraout_var,bVar8) == 0);\nLAB_002d398c:\n        iVar11 = *piVar24;\n        piVar28 = piVar28 + 1;\n        if (piVar28 == piVar24 + iVar11 + 1) {\n          return (bool)(char)apTStack_48[0];\n        }\n      }\n      iVar7 = *(int *)(pcVar27 + 4) + -1;\n      if (*(int *)(pcVar27 + 4) < 1) goto LAB_002d3a78;\n      pcVar27[8] = '\0';\n      pcVar27[9] = '\0';\n      pcVar27[10] = '\0';\n      pcVar27[0xb] = '\0';\n      *(int *)(pcVar27 + 4) = iVar7;\n      if ((iVar7 == 0) && (pTVar2 = *(Task **)(pcVar27 + 0xc), pTVar2 != (Task *)0x0)) {\n        pTVar4 = pTVar2->list_next_;\n        if (*(Task **)(pcVar27 + 0x10) == pTVar2) goto LAB_002d3a40;\n        while (*(Task **)(pcVar27 + 0xc) = pTVar4, pTVar4 != (Task *)0x0) {\n          pTVar2->list_next_ = (Task *)0x0;\n          while( true ) {\n            pWVar15->waiting_ = pWVar15->waiting_ + -1;\n            return_or_queue(pWVar15,pTVar2,true,apTStack_48);\n            pTVar2 = *(Task **)(pcVar27 + 0xc);\n            if (pTVar2 == (Task *)0x0) goto LAB_002d398c;\n            pTVar4 = pTVar2->list_next_;\n            if (*(Task **)(pcVar27 + 0x10) != pTVar2) break;\nLAB_002d3a40:\n            if (pTVar4 != (Task *)0x0) goto LAB_002d3a94;\n            pcVar27[0xc] = '\0';\n            pcVar27[0xd] = '\0';\n            pcVar27[0xe] = '\0';\n            pcVar27[0xf] = '\0';\n            pcVar27[0x10] = '\0';\n            pcVar27[0x11] = '\0';\n            pcVar27[0x12] = '\0';\n            pcVar27[0x13] = '\0';\n          }\n        }\nLAB_002d3a5c:\n        uVar29 = 0x5a;\n        do {\n          (**(code **)(puVar32 + 0x1ee1ac))\n                    (*(int *)(puVar32 + 0x1ee098) + 0x39bc,uVar29,\n                     *(int *)(puVar32 + 0x1ee098) + 0x3aa0);\nLAB_002d3a78:\n          (**(code **)(puVar32 + 0x1ee1ac))\n                    (*(int *)(puVar32 + 0x1ed9f8) + -0x7f8,0xa1,\n                     *(int *)(puVar32 + 0x1ee098) + 0x3a6c);\nLAB_002d3a94:\n          uVar29 = 0x53;\n        } while( true );\n      }\n      piVar28 = piVar28 + 1;\n      uVar9 = SUB41(apTStack_48[0],0);\n    } while (piVar28 != piVar24 + iVar11 + 1);\n  }\n  return (bool)uVar9;\nLAB_002d3eac:\n  puVar16 = (undefined4 *)*piVar24;\n  if ((puVar16[2] != 0) && ((puVar16[5] & 1) != 0)) {\n    uVar29 = *puVar16;\n    if ((pTVar2->name_)._M_string_length == 0) {\n      if (pTVar2->_vptr_Task[5] == p_Stack_f4) {\n        pcVar23 = pTVar2[1].name_._M_dataplus._M_p;\n        TStack_168.start_time_.user = (long)plStack_fc;\n        if (pcVar23 == (pointer)0x0) {\n          pcVar25 = (pointer)0xffffffff;\n        }\n        else {\n          pcStack_f0 = pcVar23;\n          iVar7 = (**(code **)(pcVar33 + 0x1f1f30))(pcVar23);\n          pcVar25 = pcStack_f0 + iVar7;\n          pcVar23 = pcStack_f0;\n        }\n        (**(code **)(pcVar33 + 0x1edefc))(&TStack_168,pcVar23,pcVar25,0);\n      }\n      else {\n        (*pTVar2->_vptr_Task[5])(&TStack_168,pTVar2);\n      }\n      plVar20 = (long *)(pTVar2->name_)._M_dataplus._M_p;\n      if ((long *)TStack_168.start_time_.user == plStack_fc) {\n        if (TStack_168.start_time_.sys != 0) {\n          if (TStack_168.start_time_.sys == 1) {\n            *(char *)plVar20 = TStack_168.start_time_.wall._0_1_;\n            plVar20 = (long *)(pTVar2->name_)._M_dataplus._M_p;\n          }\n          else {\n            (**(code **)(pcVar33 + 0x1f1f3c))(plVar20,plStack_fc);\n            plVar20 = (long *)(pTVar2->name_)._M_dataplus._M_p;\n          }\n        }\n        (pTVar2->name_)._M_string_length = TStack_168.start_time_.sys;\n        *(char *)((int)plVar20 + TStack_168.start_time_.sys) = '\0';\n        sVar10 = TStack_168.start_time_.wall;\n      }\n      else {\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)plVar20 == &(pTVar2->name_).field_2) {\n          (pTVar2->name_)._M_dataplus._M_p = (pointer)TStack_168.start_time_.user;\n          (pTVar2->name_)._M_string_length = TStack_168.start_time_.sys;\n          (pTVar2->name_).field_2._M_allocated_capacity = TStack_168.start_time_.wall;\n        }\n        else {\n          sVar10 = (pTVar2->name_).field_2._M_allocated_capacity;\n          (pTVar2->name_)._M_dataplus._M_p = (pointer)TStack_168.start_time_.user;\n          (pTVar2->name_)._M_string_length = TStack_168.start_time_.sys;\n          (pTVar2->name_).field_2._M_allocated_capacity = TStack_168.start_time_.wall;\n          TStack_168.start_time_.user = (long)plVar20;\n          if (plVar20 != (long *)0x0) goto LAB_002d3f6c;\n        }\n        TStack_168.start_time_.user = (long)plStack_fc;\n        sVar10 = TStack_168.start_time_.wall;\n      }\nLAB_002d3f6c:\n      TStack_168.start_time_.wall = sVar10;\n      TStack_168.start_time_.sys = 0;\n      *(char *)TStack_168.start_time_.user = '\0';\n      if ((long *)TStack_168.start_time_.user != plStack_fc) {\n        (**(code **)(pcVar33 + 0x1ed690))();\n      }\n    }\n    (**(code **)(pcVar33 + 0x1ee3ac))(uVar29,iStack_f8,iVar11,(pTVar2->name_)._M_dataplus._M_p);\n  }\n  Timer::Timer(&TStack_168);\n  if ((*(int *)(*piVar24 + 8) != 0) && ((*(uint *)(*piVar24 + 0x14) & 1) != 0)) {\n    Timer::start(&TStack_168);\n  }\n  if (pTVar2->_vptr_Task[4] == p_Var30) {\n    (**(code **)(*pTVar2[1]._vptr_Task + 8))(pTVar2[1]._vptr_Task,this_00);\n  }\n  else {\n    (*pTVar2->_vptr_Task[4])(pTVar2,this_00,pTVar2);\n  }\n  if ((*(int *)(*piVar24 + 8) == 0) || ((*(uint *)(*piVar24 + 0x14) & 1) == 0)) {\nLAB_002d3d6c:\n    pLVar5 = (this_00->lock_).lock_;\n  }\n  else {\n    Timer::get_elapsed_time(&TStack_10c,&TStack_168);\n    lVar1 = TStack_10c.user;\n    puVar16 = (undefined4 *)*piVar24;\n    if ((puVar16[2] == 0) || ((puVar16[5] & 1) == 0)) goto LAB_002d3d6c;\n    pcStack_f0 = (pointer)*puVar16;\n    psVar12 = (size_type *)TStack_10c.sys;\n    psVar26 = (size_type *)TStack_10c.wall;\n    if ((pTVar2->name_)._M_string_length == 0) {\n      psVar12 = asStack_130;\n      if (pTVar2->_vptr_Task[5] == p_Stack_f4) {\n        psStack_e8 = (size_type *)pTVar2[1].name_._M_dataplus._M_p;\n        _Stack_138._M_p = (pointer)psVar12;\n        if (psStack_e8 == (size_type *)0x0) {\n          pcVar23 = (pointer)0xffffffff;\n          psStack_e0 = (size_type *)TStack_10c.sys;\n          psStack_e4 = (size_type *)TStack_10c.wall;\n        }\n        else {\n          psStack_e0 = (size_type *)TStack_10c.sys;\n          psStack_e4 = (size_type *)TStack_10c.wall;\n          psStack_dc = psVar12;\n          iVar7 = (**(code **)(pcVar33 + 0x1f1f30))(psStack_e8);\n          pcVar23 = (pointer)((int)psStack_e8 + iVar7);\n          psVar12 = psStack_dc;\n        }\n        pcVar25 = (pointer)psStack_e8;\n        psStack_e8 = psStack_e4;\n        psStack_e4 = psStack_e0;\n        psStack_e0 = psVar12;\n        (**(code **)(pcVar33 + 0x1edefc))(&_Stack_138,pcVar25,pcVar23,0);\n        psVar14 = psStack_e0;\n        psVar12 = psStack_e4;\n        psVar26 = psStack_e8;\n      }\n      else {\n        psStack_e0 = (size_type *)TStack_10c.sys;\n        psStack_e4 = (size_type *)TStack_10c.wall;\n        psStack_e8 = psVar12;\n        (*pTVar2->_vptr_Task[5])(&_Stack_138,pTVar2);\n        psVar14 = psStack_e8;\n        psVar12 = psStack_e0;\n        psVar26 = psStack_e4;\n      }\n      _Var21._M_p = (pTVar2->name_)._M_dataplus._M_p;\n      if ((size_type *)_Stack_138._M_p == psVar14) {\n        if (sStack_134 != 0) {\n          if (sStack_134 == 1) {\n            *_Var21._M_p = asStack_130[0]._0_1_;\n            _Var21._M_p = (pTVar2->name_)._M_dataplus._M_p;\n          }\n          else {\n            psStack_e8 = psVar14;\n            psStack_e4 = psVar26;\n            psStack_e0 = psVar12;\n            (**(code **)(pcVar33 + 0x1f1f3c))(_Var21._M_p,psVar14);\n            _Var21._M_p = (pTVar2->name_)._M_dataplus._M_p;\n            psVar14 = psStack_e8;\n            psVar12 = psStack_e0;\n            psVar26 = psStack_e4;\n          }\n        }\n        (pTVar2->name_)._M_string_length = sStack_134;\n        *(_Var21._M_p + sStack_134) = '\0';\n        psVar13 = psVar14;\n        _Var21._M_p = _Stack_138._M_p;\n        sVar10 = asStack_130[0];\n      }\n      else {\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)_Var21._M_p == &(pTVar2->name_).field_2) {\n          (pTVar2->name_)._M_dataplus._M_p = _Stack_138._M_p;\n          (pTVar2->name_)._M_string_length = sStack_134;\n          (pTVar2->name_).field_2._M_allocated_capacity = asStack_130[0];\n        }\n        else {\n          sVar10 = (pTVar2->name_).field_2._M_allocated_capacity;\n          (pTVar2->name_)._M_dataplus._M_p = _Stack_138._M_p;\n          (pTVar2->name_)._M_string_length = sStack_134;\n          (pTVar2->name_).field_2._M_allocated_capacity = asStack_130[0];\n          psVar13 = psVar14;\n          _Stack_138._M_p = _Var21._M_p;\n          if ((size_type *)_Var21._M_p != (size_type *)0x0) goto LAB_002d4130;\n        }\n        psVar13 = asStack_130;\n        _Var21._M_p = (pointer)asStack_130;\n        _Stack_138._M_p = (pointer)psVar14;\n        sVar10 = asStack_130[0];\n      }\nLAB_002d4130:\n      asStack_130[0] = sVar10;\n      sStack_134 = 0;\n      *_Var21._M_p = '\0';\n      if ((size_type *)_Stack_138._M_p != psVar13) {\n        psStack_e8 = psVar26;\n        psStack_e4 = psVar12;\n        (**(code **)(pcVar33 + 0x1ed690))();\n        psVar12 = psStack_e4;\n        psVar26 = psStack_e8;\n      }\n    }\n    (**(code **)(pcVar33 + 0x1ee3ac))\n              (pcStack_f0,iStack_ec,iVar11,(pTVar2->name_)._M_dataplus._M_p,lVar1 / 1000,\n               (lVar1 % 1000) * 1000,(int)psVar12 / 1000,((int)psVar12 % 1000) * 1000,\n               (int)psVar26 / 1000,((int)psVar26 % 1000) * 1000);\n    pLVar5 = (this_00->lock_).lock_;\n  }\n  (*pLVar5->_vptr_Lock_impl[2])(pLVar5);\n  this_00->running_ = this_00->running_ + -1;\n  pTVar4 = (Task *)(*pcStack_100)(this_00,pTVar2,auStack_120);\n  if (pTVar4 == (Task *)0x0) {\n    pTVar4 = find_runnable(this_00);\n    if (pTVar4 != (Task *)0x0) {\n      pp_Var6 = pTVar4->_vptr_Task;\n      goto LAB_002d3db4;\n    }\n  }\n  else {\n    pp_Var6 = pTVar4->_vptr_Task;\nLAB_002d3db4:\n    auStack_120[0] = 0;\n    if (pp_Var6[3] == p_Var31) {\n      iVar7 = this_00->running_;\n    }\n    else {\n      (*pp_Var6[3])(pTVar4,auStack_120);\n      iVar7 = this_00->running_;\n    }\n    this_00->running_ = iVar7 + 1;\n  }\n  pLVar5 = (this_00->lock_).lock_;\n  (*pLVar5->_vptr_Lock_impl[3])(pLVar5);\n  if (pTVar2->_vptr_Task[1] == *(_func_int_varargs **)(pcVar33 + 0x1f0ef8)) {\n    pTVar2->_vptr_Task = (_func_int_varargs **)(iVar22 + 8);\n    if (pTVar2[1]._vptr_Task != (_func_int_varargs **)0x0) {\n      (**(code **)(*pTVar2[1]._vptr_Task + 4))();\n    }\n    pTVar19 = pTVar2[1].list_next_;\n    iVar7 = *(int *)(pcVar33 + 0x1ee7e4);\n    if (pTVar19 != (Task *)0x0) {\n      iVar7 = 100;\n      if ((pTVar19->list_next_ != (Task *)0x0) ||\n         (iVar7 = 0x65, (pTVar19->name_)._M_dataplus._M_p != (pointer)0x0)) {\nLAB_002d4440:\n        pWVar15 = (Workqueue *)(*(int *)(pcVar33 + 0x1ed610) + -0x7f8);\n        (**(code **)(pcVar33 + 0x1eddc4))();\n        pLVar5 = (this_00->lock_).lock_;\n        (*pLVar5->_vptr_Lock_impl[3])(pLVar5);\n        (**(code **)(pcVar33 + 0x1ed65c))();\n        pLVar5 = (this_00->lock_).lock_;\n        (*pLVar5->_vptr_Lock_impl[3])(pLVar5);\n        (**(code **)(pcVar33 + 0x1ed65c))();\n        do {\n          bVar8 = find_and_run_task(pWVar15,iVar7);\n        } while (CONCAT31(extraout_var_00,bVar8) != 0);\n        return bVar8;\n      }\n      if (((pTVar19->name_)._M_string_length != 0) ||\n         ((pTVar19->name_).field_2._M_allocated_capacity != 0)) {\n        iVar7 = 0x2c;\n        (**(code **)(pcVar33 + 0x1eddc4))\n                  (*(int *)(pcVar33 + 0x1ed610) + -0x7f8,0x2c,*(int *)(pcVar33 + 0x1edcb0) + 0x3ae0)\n        ;\n        goto LAB_002d4440;\n      }\n      (**(code **)(pcVar33 + 0x1ed7b8))(pTVar19,0x14);\n      iVar7 = *(int *)(pcVar33 + 0x1ee7e4);\n    }\n    pcVar23 = (pTVar2->name_)._M_dataplus._M_p;\n    pTVar2->_vptr_Task = (_func_int_varargs **)(iVar7 + 8);\n    if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)pcVar23 != &(pTVar2->name_).field_2) {\n      (**(code **)(pcVar33 + 0x1ed690))();\n    }\n    (**(code **)(pcVar33 + 0x1ed7b8))(pTVar2,0x30);\n  }\n  else {\n    (*pTVar2->_vptr_Task[1])(pTVar2);\n  }\n  pTVar2 = pTVar4;\n  if (pTVar4 == (Task *)0x0) {\n    return true;\n  }\n  goto LAB_002d3eac;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Workqueue::" identifier : : identifier : :) (function_declarator "return_or_queue(Workqueue *this,Task *t,bool is_blocker,Task **pret)" identifier (parameter_list "(Workqueue *this,Task *t,bool is_blocker,Task **pret)" ( (parameter_declaration "Workqueue *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Task *t" type_identifier (pointer_declarator "*t" * identifier)) , (parameter_declaration "bool is_blocker" primitive_type identifier) , (parameter_declaration "Task **pret" type_identifier (pointer_declarator "**pret" * (pointer_declarator "*pret" * identifier))) ))) (compound_statement "{\n  long lVar1;\n  undefined3 extraout_var;\n  undefined3 extraout_var_00;\n  Task *pTVar2;\n  Condvar_impl *pCVar3;\n  Task *pTVar4;\n  bool bVar8;\n  undefined1 uVar9;\n  Lock_impl *pLVar5;\n  _func_int_varargs **pp_Var6;\n  int iVar7;\n  size_type sVar10;\n  int iVar11;\n  size_type *psVar12;\n  size_type *psVar13;\n  size_type *psVar14;\n  Workqueue *pWVar15;\n  undefined4 *puVar16;\n  undefined4 *puVar17;\n  Workqueue *pWVar18;\n  Workqueue *this_00;\n  Task *pTVar19;\n  long *plVar20;\n  _Alloc_hider _Var21;\n  int iVar22;\n  pointer pcVar23;\n  undefined3 in_register_00000018;\n  int *piVar24;\n  pointer pcVar25;\n  size_type *psVar26;\n  char *pcVar27;\n  int *piVar28;\n  undefined4 uVar29;\n  _func_int_varargs *p_Var30;\n  _func_int_varargs *p_Var31;\n  undefined *puVar32;\n  code *pcVar33;\n  code *pcVar34;\n  _func_int_varargs *p_Var35;\n  Timer TStack_168;\n  _Alloc_hider _Stack_138;\n  size_type sStack_134;\n  size_type asStack_130 [4];\n  undefined4 auStack_120 [5];\n  TimeStats TStack_10c;\n  code *pcStack_100;\n  long *plStack_fc;\n  int iStack_f8;\n  _func_int_varargs *p_Stack_f4;\n  pointer pcStack_f0;\n  int iStack_ec;\n  size_type *psStack_e8;\n  size_type *psStack_e4;\n  size_type *psStack_e0;\n  size_type *psStack_dc;\n  Workqueue *pWStack_d8;\n  undefined4 *puStack_d4;\n  undefined4 uStack_d0;\n  int *piStack_cc;\n  int iStack_c8;\n  Workqueue *pWStack_c4;\n  Task **ppTStack_c0;\n  Task *apTStack_48 [2];\n  Workqueue *pWStack_40;\n  \n  if (t->_vptr_Task[2] == (_func_int_varargs *)PTR_is_runnable_004c4b34) {\n    pTVar2 = t[1].list_next_;\n    if (*(char *)&pTVar2->_vptr_Task != '\0') {\n      if ((int)pTVar2->list_next_ < 1) goto LAB_002d3724;\nLAB_002d36ac:\n      if (t->list_next_ == (Task *)0x0) {\n        if ((pTVar2->name_)._M_string_length == 0) {\n          (pTVar2->name_)._M_string_length = (size_type)t;\n          (pTVar2->name_).field_2._M_allocated_capacity = (size_type)t;\nLAB_002d36dc:\n          this->waiting_ = this->waiting_ + 1;\n          return false;\n        }\n        sVar10 = (pTVar2->name_).field_2._M_allocated_capacity;\n        if (*(int *)(sVar10 + 4) == 0) {\n          *(Task **)(sVar10 + 4) = t;\n          (pTVar2->name_).field_2._M_allocated_capacity = (size_type)t;\n          goto LAB_002d36dc;\n        }\n        goto LAB_002d386c;\n      }\n      goto LAB_002d3834;\n    }\n  }\n  else {\n    pTVar2 = (Task *)(*t->_vptr_Task[2])(t);\n    if (pTVar2 != (Task *)0x0) goto LAB_002d36ac;\nLAB_002d3724:\n    if (*pret == (Task *)0x0) {\n      if (((CONCAT31(in_register_00000018,is_blocker) == 0) || (t->should_run_soon_ != false)) ||\n         (((this->first_tasks_).head_ == (Task *)0x0 && ((this->tasks_).head_ == (Task *)0x0)))) {\n        *pret = t;\n        return true;\n      }\n      pTVar2 = t->list_next_;\n    }\n    else {\n      pTVar2 = t->list_next_;\n      if (t->should_run_soon_ != false) {\n        if (pTVar2 == (Task *)0x0) {\n          if ((this->first_tasks_).head_ == (Task *)0x0) {\n            (this->first_tasks_).head_ = t;\n            (this->first_tasks_).tail_ = t;\n            goto LAB_002d3768;\n          }\n          pTVar2 = (this->first_tasks_).tail_;\n          if (pTVar2->list_next_ == (Task *)0x0) {\n            pTVar2->list_next_ = t;\n            (this->first_tasks_).tail_ = t;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }\n        goto LAB_002d3834;\n      }\n    }\n    if (pTVar2 == (Task *)0x0) {\n      if ((this->tasks_).head_ == (Task *)0x0) {\n        (this->tasks_).head_ = t;\n        (this->tasks_).tail_ = t;\nLAB_002d3768:\n        pCVar3 = (this->condvar_).condvar_;\n        (*pCVar3->_vptr_Condvar_impl[3])(pCVar3);\n        return false;\n      }\n      pTVar2 = (this->tasks_).tail_;\n      if (pTVar2->list_next_ == (Task *)0x0) {\n        pTVar2->list_next_ = t;\n        (this->tasks_).tail_ = t;\n        goto LAB_002d3768;\n      }\n      goto LAB_002d386c;\n    }\nLAB_002d3834:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x39bc,0x29,\n               PTR_s_in_a_linker_script_004c191c + 0x3aac);\n  }\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x7f8,0xab,\n             PTR_s_in_a_linker_script_004c191c + 0x3ad4);\nLAB_002d386c:\n  iVar22 = 0x5a;\n  piVar24 = (int *)(PTR_s_in_a_linker_script_004c191c + 0x3ab8);\n  pWVar15 = (Workqueue *)(PTR_s__s_004c1a50 + 0x970);\n  puVar32 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)();\n  iVar11 = *piVar24;\n  piVar28 = piVar24 + 1;\n  apTStack_48[0] = (Task *)0x0;\n  if (piVar28 == piVar24 + iVar11 + 1) {\n    uVar9 = 0;\n  }\n  else {\n    uVar29 = *(undefined4 *)(puVar32 + 0x1f12c4);\n    pWStack_40 = this;\n    do {\n      while (pcVar27 = (char *)*piVar28, *pcVar27 == '\0') {\n        if (iVar22 != *(int *)(pcVar27 + 8)) {\n          iVar11 = 0x84;\n          pcVar33 = *(code **)(puVar32 + 0x1ee1ac);\n          puVar16 = (undefined4 *)(*(int *)(puVar32 + 0x1ed9f8) + -0x7f8);\n          (*pcVar33)(puVar16,0x84,*(int *)(puVar32 + 0x1ee098) + 0x3a5c);\n          (**(code **)(*(int *)*puVar16 + 8))((int *)*puVar16);\n          pcVar34 = *(code **)(*(int *)puVar16[9] + 8);\n          if (pcVar34 == *(code **)(pcVar33 + 0x1f1098)) {\n            if (iVar11 < 1) {\n              pcVar27 = &DAT_0000006e;\n              puVar17 = (undefined4 *)(*(int *)(pcVar33 + 0x1ede68) + 0x39bc);\n              (**(code **)(pcVar33 + 0x1edf7c))(puVar17,0x6e,*(int *)(pcVar33 + 0x1ede68) + 0x3aec);\n              (**(code **)(*(int *)*puVar16 + 0xc))((int *)*puVar16);\n              pcVar33 = *(code **)(pcVar33 + 0x1ed814);\n              (*pcVar33)();\n              (**(code **)(*(int *)*puVar17 + 8))((int *)*puVar17);\n              if (*pcVar27 != '\0') {\n                piVar24 = (int *)*puVar17;\n                iVar11 = *piVar24;\n                pcVar27[8] = '\0';\n                pcVar27[9] = '\0';\n                pcVar27[10] = '\0';\n                pcVar27[0xb] = '\0';\n                *(int *)(pcVar27 + 4) = *(int *)(pcVar27 + 4) + 1;\n                    /* WARNING: Could not recover jumptable at 0x002d3c1c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                uVar9 = (**(code **)(iVar11 + 0xc))(piVar24);\n                return (bool)uVar9;\n              }\n              iVar11 = 0x8e;\n              pWVar18 = (Workqueue *)(*(int *)(pcVar33 + 0x1ed6d4) + -0x7f8);\n              (**(code **)(pcVar33 + 0x1ede88))(pWVar18,0x8e,*(int *)(pcVar33 + 0x1edd74) + 0x3a50);\n              (**(code **)(*(int *)*puVar17 + 0xc))((int *)*puVar17);\n              pcVar33 = *(code **)(pcVar33 + 0x1ed720);\n              this_00 = pWVar18;\n              (*pcVar33)();\n              pLVar5 = (this_00->lock_).lock_;\n              auStack_120[0] = 0;\n              pWStack_d8 = pWVar18;\n              puStack_d4 = puVar17;\n              uStack_d0 = uVar29;\n              piStack_cc = piVar24;\n              iStack_c8 = iVar22;\n              pWStack_c4 = pWVar15;\n              ppTStack_c0 = apTStack_48;\n              (*pLVar5->_vptr_Lock_impl[2])(pLVar5);\n              pTVar2 = find_runnable_or_wait(this_00,iVar11);\n              if (pTVar2 == (Task *)0x0) {\n                pLVar5 = (this_00->lock_).lock_;\n                (*pLVar5->_vptr_Lock_impl[3])(pLVar5);\n                return false;\n              }\n              p_Var31 = *(_func_int_varargs **)(pcVar33 + 0x1f0ee8);\n              if (pTVar2->_vptr_Task[3] != p_Var31) {\n                (*pTVar2->_vptr_Task[3])(pTVar2,auStack_120);\n              }\n              pLVar5 = (this_00->lock_).lock_;\n              plStack_fc = &TStack_168.start_time_.wall;\n              pcStack_100 = *(code **)(pcVar33 + 0x1f0eec);\n              p_Stack_f4 = *(_func_int_varargs **)(pcVar33 + 0x1f0ef0);\n              piVar24 = *(int **)(pcVar33 + 0x1edd48);\n              p_Var30 = *(_func_int_varargs **)(pcVar33 + 0x1f0ef4);\n              p_Var35 = pLVar5->_vptr_Lock_impl[3];\n              this_00->running_ = this_00->running_ + 1;\n              (*p_Var35)(pLVar5);\n              iStack_f8 = *(int *)(pcVar33 + 0x1edcb0) + 0x39f0;\n              iStack_ec = *(int *)(pcVar33 + 0x1edcb0) + 0x3a08;\n              iVar22 = *(int *)(pcVar33 + 0x1ee464);\n              goto LAB_002d3eac;\n            }\n            piVar24 = (int *)puVar16[8];\n          }\n          else {\n            (*pcVar34)((int *)puVar16[9],iVar11);\n            piVar24 = (int *)puVar16[8];\n          }\n          (**(code **)(*piVar24 + 0x10))(piVar24);\n                    /* WARNING: Could not recover jumptable at 0x002d3b4c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar9 = (**(code **)(*(int *)*puVar16 + 0xc))((int *)*puVar16);\n          return (bool)uVar9;\n        }\n        pcVar27[8] = '\0';\n        pcVar27[9] = '\0';\n        pcVar27[10] = '\0';\n        pcVar27[0xb] = '\0';\n        do {\n          pTVar2 = *(Task **)(pcVar27 + 0xc);\n          if (pTVar2 == (Task *)0x0) break;\n          pTVar4 = pTVar2->list_next_;\n          if (pTVar2 == *(Task **)(pcVar27 + 0x10)) {\n            if (pTVar4 != (Task *)0x0) goto LAB_002d3a94;\n            pcVar27[0xc] = '\0';\n            pcVar27[0xd] = '\0';\n            pcVar27[0xe] = '\0';\n            pcVar27[0xf] = '\0';\n            pcVar27[0x10] = '\0';\n            pcVar27[0x11] = '\0';\n            pcVar27[0x12] = '\0';\n            pcVar27[0x13] = '\0';\n          }\n          else {\n            *(Task **)(pcVar27 + 0xc) = pTVar4;\n            if (pTVar4 == (Task *)0x0) goto LAB_002d3a5c;\n            pTVar2->list_next_ = (Task *)0x0;\n          }\n          pWVar15->waiting_ = pWVar15->waiting_ + -1;\n          bVar8 = return_or_queue(pWVar15,pTVar2,false,apTStack_48);\n        } while (CONCAT31(extraout_var,bVar8) == 0);\nLAB_002d398c:\n        iVar11 = *piVar24;\n        piVar28 = piVar28 + 1;\n        if (piVar28 == piVar24 + iVar11 + 1) {\n          return (bool)(char)apTStack_48[0];\n        }\n      }\n      iVar7 = *(int *)(pcVar27 + 4) + -1;\n      if (*(int *)(pcVar27 + 4) < 1) goto LAB_002d3a78;\n      pcVar27[8] = '\0';\n      pcVar27[9] = '\0';\n      pcVar27[10] = '\0';\n      pcVar27[0xb] = '\0';\n      *(int *)(pcVar27 + 4) = iVar7;\n      if ((iVar7 == 0) && (pTVar2 = *(Task **)(pcVar27 + 0xc), pTVar2 != (Task *)0x0)) {\n        pTVar4 = pTVar2->list_next_;\n        if (*(Task **)(pcVar27 + 0x10) == pTVar2) goto LAB_002d3a40;\n        while (*(Task **)(pcVar27 + 0xc) = pTVar4, pTVar4 != (Task *)0x0) {\n          pTVar2->list_next_ = (Task *)0x0;\n          while( true ) {\n            pWVar15->waiting_ = pWVar15->waiting_ + -1;\n            return_or_queue(pWVar15,pTVar2,true,apTStack_48);\n            pTVar2 = *(Task **)(pcVar27 + 0xc);\n            if (pTVar2 == (Task *)0x0) goto LAB_002d398c;\n            pTVar4 = pTVar2->list_next_;\n            if (*(Task **)(pcVar27 + 0x10) != pTVar2) break;\nLAB_002d3a40:\n            if (pTVar4 != (Task *)0x0) goto LAB_002d3a94;\n            pcVar27[0xc] = '\0';\n            pcVar27[0xd] = '\0';\n            pcVar27[0xe] = '\0';\n            pcVar27[0xf] = '\0';\n            pcVar27[0x10] = '\0';\n            pcVar27[0x11] = '\0';\n            pcVar27[0x12] = '\0';\n            pcVar27[0x13] = '\0';\n          }\n        }\nLAB_002d3a5c:\n        uVar29 = 0x5a;\n        do {\n          (**(code **)(puVar32 + 0x1ee1ac))\n                    (*(int *)(puVar32 + 0x1ee098) + 0x39bc,uVar29,\n                     *(int *)(puVar32 + 0x1ee098) + 0x3aa0);\nLAB_002d3a78:\n          (**(code **)(puVar32 + 0x1ee1ac))\n                    (*(int *)(puVar32 + 0x1ed9f8) + -0x7f8,0xa1,\n                     *(int *)(puVar32 + 0x1ee098) + 0x3a6c);\nLAB_002d3a94:\n          uVar29 = 0x53;\n        } while( true );\n      }\n      piVar28 = piVar28 + 1;\n      uVar9 = SUB41(apTStack_48[0],0);\n    } while (piVar28 != piVar24 + iVar11 + 1);\n  }\n  return (bool)uVar9;\nLAB_002d3eac:\n  puVar16 = (undefined4 *)*piVar24;\n  if ((puVar16[2] != 0) && ((puVar16[5] & 1) != 0)) {\n    uVar29 = *puVar16;\n    if ((pTVar2->name_)._M_string_length == 0) {\n      if (pTVar2->_vptr_Task[5] == p_Stack_f4) {\n        pcVar23 = pTVar2[1].name_._M_dataplus._M_p;\n        TStack_168.start_time_.user = (long)plStack_fc;\n        if (pcVar23 == (pointer)0x0) {\n          pcVar25 = (pointer)0xffffffff;\n        }\n        else {\n          pcStack_f0 = pcVar23;\n          iVar7 = (**(code **)(pcVar33 + 0x1f1f30))(pcVar23);\n          pcVar25 = pcStack_f0 + iVar7;\n          pcVar23 = pcStack_f0;\n        }\n        (**(code **)(pcVar33 + 0x1edefc))(&TStack_168,pcVar23,pcVar25,0);\n      }\n      else {\n        (*pTVar2->_vptr_Task[5])(&TStack_168,pTVar2);\n      }\n      plVar20 = (long *)(pTVar2->name_)._M_dataplus._M_p;\n      if ((long *)TStack_168.start_time_.user == plStack_fc) {\n        if (TStack_168.start_time_.sys != 0) {\n          if (TStack_168.start_time_.sys == 1) {\n            *(char *)plVar20 = TStack_168.start_time_.wall._0_1_;\n            plVar20 = (long *)(pTVar2->name_)._M_dataplus._M_p;\n          }\n          else {\n            (**(code **)(pcVar33 + 0x1f1f3c))(plVar20,plStack_fc);\n            plVar20 = (long *)(pTVar2->name_)._M_dataplus._M_p;\n          }\n        }\n        (pTVar2->name_)._M_string_length = TStack_168.start_time_.sys;\n        *(char *)((int)plVar20 + TStack_168.start_time_.sys) = '\0';\n        sVar10 = TStack_168.start_time_.wall;\n      }\n      else {\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)plVar20 == &(pTVar2->name_).field_2) {\n          (pTVar2->name_)._M_dataplus._M_p = (pointer)TStack_168.start_time_.user;\n          (pTVar2->name_)._M_string_length = TStack_168.start_time_.sys;\n          (pTVar2->name_).field_2._M_allocated_capacity = TStack_168.start_time_.wall;\n        }\n        else {\n          sVar10 = (pTVar2->name_).field_2._M_allocated_capacity;\n          (pTVar2->name_)._M_dataplus._M_p = (pointer)TStack_168.start_time_.user;\n          (pTVar2->name_)._M_string_length = TStack_168.start_time_.sys;\n          (pTVar2->name_).field_2._M_allocated_capacity = TStack_168.start_time_.wall;\n          TStack_168.start_time_.user = (long)plVar20;\n          if (plVar20 != (long *)0x0) goto LAB_002d3f6c;\n        }\n        TStack_168.start_time_.user = (long)plStack_fc;\n        sVar10 = TStack_168.start_time_.wall;\n      }\nLAB_002d3f6c:\n      TStack_168.start_time_.wall = sVar10;\n      TStack_168.start_time_.sys = 0;\n      *(char *)TStack_168.start_time_.user = '\0';\n      if ((long *)TStack_168.start_time_.user != plStack_fc) {\n        (**(code **)(pcVar33 + 0x1ed690))();\n      }\n    }\n    (**(code **)(pcVar33 + 0x1ee3ac))(uVar29,iStack_f8,iVar11,(pTVar2->name_)._M_dataplus._M_p);\n  }\n  Timer::Timer(&TStack_168);\n  if ((*(int *)(*piVar24 + 8) != 0) && ((*(uint *)(*piVar24 + 0x14) & 1) != 0)) {\n    Timer::start(&TStack_168);\n  }\n  if (pTVar2->_vptr_Task[4] == p_Var30) {\n    (**(code **)(*pTVar2[1]._vptr_Task + 8))(pTVar2[1]._vptr_Task,this_00);\n  }\n  else {\n    (*pTVar2->_vptr_Task[4])(pTVar2,this_00,pTVar2);\n  }\n  if ((*(int *)(*piVar24 + 8) == 0) || ((*(uint *)(*piVar24 + 0x14) & 1) == 0)) {\nLAB_002d3d6c:\n    pLVar5 = (this_00->lock_).lock_;\n  }\n  else {\n    Timer::get_elapsed_time(&TStack_10c,&TStack_168);\n    lVar1 = TStack_10c.user;\n    puVar16 = (undefined4 *)*piVar24;\n    if ((puVar16[2] == 0) || ((puVar16[5] & 1) == 0)) goto LAB_002d3d6c;\n    pcStack_f0 = (pointer)*puVar16;\n    psVar12 = (size_type *)TStack_10c.sys;\n    psVar26 = (size_type *)TStack_10c.wall;\n    if ((pTVar2->name_)._M_string_length == 0) {\n      psVar12 = asStack_130;\n      if (pTVar2->_vptr_Task[5] == p_Stack_f4) {\n        psStack_e8 = (size_type *)pTVar2[1].name_._M_dataplus._M_p;\n        _Stack_138._M_p = (pointer)psVar12;\n        if (psStack_e8 == (size_type *)0x0) {\n          pcVar23 = (pointer)0xffffffff;\n          psStack_e0 = (size_type *)TStack_10c.sys;\n          psStack_e4 = (size_type *)TStack_10c.wall;\n        }\n        else {\n          psStack_e0 = (size_type *)TStack_10c.sys;\n          psStack_e4 = (size_type *)TStack_10c.wall;\n          psStack_dc = psVar12;\n          iVar7 = (**(code **)(pcVar33 + 0x1f1f30))(psStack_e8);\n          pcVar23 = (pointer)((int)psStack_e8 + iVar7);\n          psVar12 = psStack_dc;\n        }\n        pcVar25 = (pointer)psStack_e8;\n        psStack_e8 = psStack_e4;\n        psStack_e4 = psStack_e0;\n        psStack_e0 = psVar12;\n        (**(code **)(pcVar33 + 0x1edefc))(&_Stack_138,pcVar25,pcVar23,0);\n        psVar14 = psStack_e0;\n        psVar12 = psStack_e4;\n        psVar26 = psStack_e8;\n      }\n      else {\n        psStack_e0 = (size_type *)TStack_10c.sys;\n        psStack_e4 = (size_type *)TStack_10c.wall;\n        psStack_e8 = psVar12;\n        (*pTVar2->_vptr_Task[5])(&_Stack_138,pTVar2);\n        psVar14 = psStack_e8;\n        psVar12 = psStack_e0;\n        psVar26 = psStack_e4;\n      }\n      _Var21._M_p = (pTVar2->name_)._M_dataplus._M_p;\n      if ((size_type *)_Stack_138._M_p == psVar14) {\n        if (sStack_134 != 0) {\n          if (sStack_134 == 1) {\n            *_Var21._M_p = asStack_130[0]._0_1_;\n            _Var21._M_p = (pTVar2->name_)._M_dataplus._M_p;\n          }\n          else {\n            psStack_e8 = psVar14;\n            psStack_e4 = psVar26;\n            psStack_e0 = psVar12;\n            (**(code **)(pcVar33 + 0x1f1f3c))(_Var21._M_p,psVar14);\n            _Var21._M_p = (pTVar2->name_)._M_dataplus._M_p;\n            psVar14 = psStack_e8;\n            psVar12 = psStack_e0;\n            psVar26 = psStack_e4;\n          }\n        }\n        (pTVar2->name_)._M_string_length = sStack_134;\n        *(_Var21._M_p + sStack_134) = '\0';\n        psVar13 = psVar14;\n        _Var21._M_p = _Stack_138._M_p;\n        sVar10 = asStack_130[0];\n      }\n      else {\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)_Var21._M_p == &(pTVar2->name_).field_2) {\n          (pTVar2->name_)._M_dataplus._M_p = _Stack_138._M_p;\n          (pTVar2->name_)._M_string_length = sStack_134;\n          (pTVar2->name_).field_2._M_allocated_capacity = asStack_130[0];\n        }\n        else {\n          sVar10 = (pTVar2->name_).field_2._M_allocated_capacity;\n          (pTVar2->name_)._M_dataplus._M_p = _Stack_138._M_p;\n          (pTVar2->name_)._M_string_length = sStack_134;\n          (pTVar2->name_).field_2._M_allocated_capacity = asStack_130[0];\n          psVar13 = psVar14;\n          _Stack_138._M_p = _Var21._M_p;\n          if ((size_type *)_Var21._M_p != (size_type *)0x0) goto LAB_002d4130;\n        }\n        psVar13 = asStack_130;\n        _Var21._M_p = (pointer)asStack_130;\n        _Stack_138._M_p = (pointer)psVar14;\n        sVar10 = asStack_130[0];\n      }\nLAB_002d4130:\n      asStack_130[0] = sVar10;\n      sStack_134 = 0;\n      *_Var21._M_p = '\0';\n      if ((size_type *)_Stack_138._M_p != psVar13) {\n        psStack_e8 = psVar26;\n        psStack_e4 = psVar12;\n        (**(code **)(pcVar33 + 0x1ed690))();\n        psVar12 = psStack_e4;\n        psVar26 = psStack_e8;\n      }\n    }\n    (**(code **)(pcVar33 + 0x1ee3ac))\n              (pcStack_f0,iStack_ec,iVar11,(pTVar2->name_)._M_dataplus._M_p,lVar1 / 1000,\n               (lVar1 % 1000) * 1000,(int)psVar12 / 1000,((int)psVar12 % 1000) * 1000,\n               (int)psVar26 / 1000,((int)psVar26 % 1000) * 1000);\n    pLVar5 = (this_00->lock_).lock_;\n  }\n  (*pLVar5->_vptr_Lock_impl[2])(pLVar5);\n  this_00->running_ = this_00->running_ + -1;\n  pTVar4 = (Task *)(*pcStack_100)(this_00,pTVar2,auStack_120);\n  if (pTVar4 == (Task *)0x0) {\n    pTVar4 = find_runnable(this_00);\n    if (pTVar4 != (Task *)0x0) {\n      pp_Var6 = pTVar4->_vptr_Task;\n      goto LAB_002d3db4;\n    }\n  }\n  else {\n    pp_Var6 = pTVar4->_vptr_Task;\nLAB_002d3db4:\n    auStack_120[0] = 0;\n    if (pp_Var6[3] == p_Var31) {\n      iVar7 = this_00->running_;\n    }\n    else {\n      (*pp_Var6[3])(pTVar4,auStack_120);\n      iVar7 = this_00->running_;\n    }\n    this_00->running_ = iVar7 + 1;\n  }\n  pLVar5 = (this_00->lock_).lock_;\n  (*pLVar5->_vptr_Lock_impl[3])(pLVar5);\n  if (pTVar2->_vptr_Task[1] == *(_func_int_varargs **)(pcVar33 + 0x1f0ef8)) {\n    pTVar2->_vptr_Task = (_func_int_varargs **)(iVar22 + 8);\n    if (pTVar2[1]._vptr_Task != (_func_int_varargs **)0x0) {\n      (**(code **)(*pTVar2[1]._vptr_Task + 4))();\n    }\n    pTVar19 = pTVar2[1].list_next_;\n    iVar7 = *(int *)(pcVar33 + 0x1ee7e4);\n    if (pTVar19 != (Task *)0x0) {\n      iVar7 = 100;\n      if ((pTVar19->list_next_ != (Task *)0x0) ||\n         (iVar7 = 0x65, (pTVar19->name_)._M_dataplus._M_p != (pointer)0x0)) {\nLAB_002d4440:\n        pWVar15 = (Workqueue *)(*(int *)(pcVar33 + 0x1ed610) + -0x7f8);\n        (**(code **)(pcVar33 + 0x1eddc4))();\n        pLVar5 = (this_00->lock_).lock_;\n        (*pLVar5->_vptr_Lock_impl[3])(pLVar5);\n        (**(code **)(pcVar33 + 0x1ed65c))();\n        pLVar5 = (this_00->lock_).lock_;\n        (*pLVar5->_vptr_Lock_impl[3])(pLVar5);\n        (**(code **)(pcVar33 + 0x1ed65c))();\n        do {\n          bVar8 = find_and_run_task(pWVar15,iVar7);\n        } while (CONCAT31(extraout_var_00,bVar8) != 0);\n        return bVar8;\n      }\n      if (((pTVar19->name_)._M_string_length != 0) ||\n         ((pTVar19->name_).field_2._M_allocated_capacity != 0)) {\n        iVar7 = 0x2c;\n        (**(code **)(pcVar33 + 0x1eddc4))\n                  (*(int *)(pcVar33 + 0x1ed610) + -0x7f8,0x2c,*(int *)(pcVar33 + 0x1edcb0) + 0x3ae0)\n        ;\n        goto LAB_002d4440;\n      }\n      (**(code **)(pcVar33 + 0x1ed7b8))(pTVar19,0x14);\n      iVar7 = *(int *)(pcVar33 + 0x1ee7e4);\n    }\n    pcVar23 = (pTVar2->name_)._M_dataplus._M_p;\n    pTVar2->_vptr_Task = (_func_int_varargs **)(iVar7 + 8);\n    if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)pcVar23 != &(pTVar2->name_).field_2) {\n      (**(code **)(pcVar33 + 0x1ed690))();\n    }\n    (**(code **)(pcVar33 + 0x1ed7b8))(pTVar2,0x30);\n  }\n  else {\n    (*pTVar2->_vptr_Task[1])(pTVar2);\n  }\n  pTVar2 = pTVar4;\n  if (pTVar4 == (Task *)0x0) {\n    return true;\n  }\n  goto LAB_002d3eac;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined3 extraout_var;" type_identifier identifier ;) (declaration "undefined3 extraout_var_00;" type_identifier identifier ;) (declaration "Task *pTVar2;" type_identifier (pointer_declarator "*pTVar2" * identifier) ;) (declaration "Condvar_impl *pCVar3;" type_identifier (pointer_declarator "*pCVar3" * identifier) ;) (declaration "Task *pTVar4;" type_identifier (pointer_declarator "*pTVar4" * identifier) ;) (declaration "bool bVar8;" primitive_type identifier ;) (declaration "undefined1 uVar9;" type_identifier identifier ;) (declaration "Lock_impl *pLVar5;" type_identifier (pointer_declarator "*pLVar5" * identifier) ;) (declaration "_func_int_varargs **pp_Var6;" type_identifier (pointer_declarator "**pp_Var6" * (pointer_declarator "*pp_Var6" * identifier)) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "size_type sVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "size_type *psVar12;" type_identifier (pointer_declarator "*psVar12" * identifier) ;) (declaration "size_type *psVar13;" type_identifier (pointer_declarator "*psVar13" * identifier) ;) (declaration "size_type *psVar14;" type_identifier (pointer_declarator "*psVar14" * identifier) ;) (declaration "Workqueue *pWVar15;" type_identifier (pointer_declarator "*pWVar15" * identifier) ;) (declaration "undefined4 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "undefined4 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "Workqueue *pWVar18;" type_identifier (pointer_declarator "*pWVar18" * identifier) ;) (declaration "Workqueue *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (declaration "Task *pTVar19;" type_identifier (pointer_declarator "*pTVar19" * identifier) ;) (declaration "long *plVar20;" (sized_type_specifier "long" long) (pointer_declarator "*plVar20" * identifier) ;) (declaration "_Alloc_hider _Var21;" type_identifier identifier ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "pointer pcVar23;" type_identifier identifier ;) (declaration "undefined3 in_register_00000018;" type_identifier identifier ;) (declaration "int *piVar24;" primitive_type (pointer_declarator "*piVar24" * identifier) ;) (declaration "pointer pcVar25;" type_identifier identifier ;) (declaration "size_type *psVar26;" type_identifier (pointer_declarator "*psVar26" * identifier) ;) (declaration "char *pcVar27;" primitive_type (pointer_declarator "*pcVar27" * identifier) ;) (declaration "int *piVar28;" primitive_type (pointer_declarator "*piVar28" * identifier) ;) (declaration "undefined4 uVar29;" type_identifier identifier ;) (declaration "_func_int_varargs *p_Var30;" type_identifier (pointer_declarator "*p_Var30" * identifier) ;) (declaration "_func_int_varargs *p_Var31;" type_identifier (pointer_declarator "*p_Var31" * identifier) ;) (declaration "undefined *puVar32;" type_identifier (pointer_declarator "*puVar32" * identifier) ;) (declaration "code *pcVar33;" type_identifier (pointer_declarator "*pcVar33" * identifier) ;) (declaration "code *pcVar34;" type_identifier (pointer_declarator "*pcVar34" * identifier) ;) (declaration "_func_int_varargs *p_Var35;" type_identifier (pointer_declarator "*p_Var35" * identifier) ;) (declaration "Timer TStack_168;" type_identifier identifier ;) (declaration "_Alloc_hider _Stack_138;" type_identifier identifier ;) (declaration "size_type sStack_134;" type_identifier identifier ;) (declaration "size_type asStack_130 [4];" type_identifier (array_declarator "asStack_130 [4]" identifier [ number_literal ]) ;) (declaration "undefined4 auStack_120 [5];" type_identifier (array_declarator "auStack_120 [5]" identifier [ number_literal ]) ;) (declaration "TimeStats TStack_10c;" type_identifier identifier ;) (declaration "code *pcStack_100;" type_identifier (pointer_declarator "*pcStack_100" * identifier) ;) (declaration "long *plStack_fc;" (sized_type_specifier "long" long) (pointer_declarator "*plStack_fc" * identifier) ;) (declaration "int iStack_f8;" primitive_type identifier ;) (declaration "_func_int_varargs *p_Stack_f4;" type_identifier (pointer_declarator "*p_Stack_f4" * identifier) ;) (declaration "pointer pcStack_f0;" type_identifier identifier ;) (declaration "int iStack_ec;" primitive_type identifier ;) (declaration "size_type *psStack_e8;" type_identifier (pointer_declarator "*psStack_e8" * identifier) ;) (declaration "size_type *psStack_e4;" type_identifier (pointer_declarator "*psStack_e4" * identifier) ;) (declaration "size_type *psStack_e0;" type_identifier (pointer_declarator "*psStack_e0" * identifier) ;) (declaration "size_type *psStack_dc;" type_identifier (pointer_declarator "*psStack_dc" * identifier) ;) (declaration "Workqueue *pWStack_d8;" type_identifier (pointer_declarator "*pWStack_d8" * identifier) ;) (declaration "undefined4 *puStack_d4;" type_identifier (pointer_declarator "*puStack_d4" * identifier) ;) (declaration "undefined4 uStack_d0;" type_identifier identifier ;) (declaration "int *piStack_cc;" primitive_type (pointer_declarator "*piStack_cc" * identifier) ;) (declaration "int iStack_c8;" primitive_type identifier ;) (declaration "Workqueue *pWStack_c4;" type_identifier (pointer_declarator "*pWStack_c4" * identifier) ;) (declaration "Task **ppTStack_c0;" type_identifier (pointer_declarator "**ppTStack_c0" * (pointer_declarator "*ppTStack_c0" * identifier)) ;) (declaration "Task *apTStack_48 [2];" type_identifier (pointer_declarator "*apTStack_48 [2]" * (array_declarator "apTStack_48 [2]" identifier [ number_literal ])) ;) (declaration "Workqueue *pWStack_40;" type_identifier (pointer_declarator "*pWStack_40" * identifier) ;) (if_statement "if (t->_vptr_Task[2] == (_func_int_varargs *)PTR_is_runnable_004c4b34) {\n    pTVar2 = t[1].list_next_;\n    if (*(char *)&pTVar2->_vptr_Task != '\0') {\n      if ((int)pTVar2->list_next_ < 1) goto LAB_002d3724;\nLAB_002d36ac:\n      if (t->list_next_ == (Task *)0x0) {\n        if ((pTVar2->name_)._M_string_length == 0) {\n          (pTVar2->name_)._M_string_length = (size_type)t;\n          (pTVar2->name_).field_2._M_allocated_capacity = (size_type)t;\nLAB_002d36dc:\n          this->waiting_ = this->waiting_ + 1;\n          return false;\n        }\n        sVar10 = (pTVar2->name_).field_2._M_allocated_capacity;\n        if (*(int *)(sVar10 + 4) == 0) {\n          *(Task **)(sVar10 + 4) = t;\n          (pTVar2->name_).field_2._M_allocated_capacity = (size_type)t;\n          goto LAB_002d36dc;\n        }\n        goto LAB_002d386c;\n      }\n      goto LAB_002d3834;\n    }\n  }\n  else {\n    pTVar2 = (Task *)(*t->_vptr_Task[2])(t);\n    if (pTVar2 != (Task *)0x0) goto LAB_002d36ac;\nLAB_002d3724:\n    if (*pret == (Task *)0x0) {\n      if (((CONCAT31(in_register_00000018,is_blocker) == 0) || (t->should_run_soon_ != false)) ||\n         (((this->first_tasks_).head_ == (Task *)0x0 && ((this->tasks_).head_ == (Task *)0x0)))) {\n        *pret = t;\n        return true;\n      }\n      pTVar2 = t->list_next_;\n    }\n    else {\n      pTVar2 = t->list_next_;\n      if (t->should_run_soon_ != false) {\n        if (pTVar2 == (Task *)0x0) {\n          if ((this->first_tasks_).head_ == (Task *)0x0) {\n            (this->first_tasks_).head_ = t;\n            (this->first_tasks_).tail_ = t;\n            goto LAB_002d3768;\n          }\n          pTVar2 = (this->first_tasks_).tail_;\n          if (pTVar2->list_next_ == (Task *)0x0) {\n            pTVar2->list_next_ = t;\n            (this->first_tasks_).tail_ = t;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }\n        goto LAB_002d3834;\n      }\n    }\n    if (pTVar2 == (Task *)0x0) {\n      if ((this->tasks_).head_ == (Task *)0x0) {\n        (this->tasks_).head_ = t;\n        (this->tasks_).tail_ = t;\nLAB_002d3768:\n        pCVar3 = (this->condvar_).condvar_;\n        (*pCVar3->_vptr_Condvar_impl[3])(pCVar3);\n        return false;\n      }\n      pTVar2 = (this->tasks_).tail_;\n      if (pTVar2->list_next_ == (Task *)0x0) {\n        pTVar2->list_next_ = t;\n        (this->tasks_).tail_ = t;\n        goto LAB_002d3768;\n      }\n      goto LAB_002d386c;\n    }\nLAB_002d3834:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x39bc,0x29,\n               PTR_s_in_a_linker_script_004c191c + 0x3aac);\n  }" if (parenthesized_expression "(t->_vptr_Task[2] == (_func_int_varargs *)PTR_is_runnable_004c4b34)" ( (binary_expression "t->_vptr_Task[2] == (_func_int_varargs *)PTR_is_runnable_004c4b34" (subscript_expression "t->_vptr_Task[2]" (field_expression "t->_vptr_Task" identifier -> field_identifier) [ number_literal ]) == (cast_expression "(_func_int_varargs *)PTR_is_runnable_004c4b34" ( (type_descriptor "_func_int_varargs *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n    pTVar2 = t[1].list_next_;\n    if (*(char *)&pTVar2->_vptr_Task != '\0') {\n      if ((int)pTVar2->list_next_ < 1) goto LAB_002d3724;\nLAB_002d36ac:\n      if (t->list_next_ == (Task *)0x0) {\n        if ((pTVar2->name_)._M_string_length == 0) {\n          (pTVar2->name_)._M_string_length = (size_type)t;\n          (pTVar2->name_).field_2._M_allocated_capacity = (size_type)t;\nLAB_002d36dc:\n          this->waiting_ = this->waiting_ + 1;\n          return false;\n        }\n        sVar10 = (pTVar2->name_).field_2._M_allocated_capacity;\n        if (*(int *)(sVar10 + 4) == 0) {\n          *(Task **)(sVar10 + 4) = t;\n          (pTVar2->name_).field_2._M_allocated_capacity = (size_type)t;\n          goto LAB_002d36dc;\n        }\n        goto LAB_002d386c;\n      }\n      goto LAB_002d3834;\n    }\n  }" { (expression_statement "pTVar2 = t[1].list_next_;" (assignment_expression "pTVar2 = t[1].list_next_" identifier = (field_expression "t[1].list_next_" (subscript_expression "t[1]" identifier [ number_literal ]) . field_identifier)) ;) (if_statement "if (*(char *)&pTVar2->_vptr_Task != '\0') {\n      if ((int)pTVar2->list_next_ < 1) goto LAB_002d3724;\nLAB_002d36ac:\n      if (t->list_next_ == (Task *)0x0) {\n        if ((pTVar2->name_)._M_string_length == 0) {\n          (pTVar2->name_)._M_string_length = (size_type)t;\n          (pTVar2->name_).field_2._M_allocated_capacity = (size_type)t;\nLAB_002d36dc:\n          this->waiting_ = this->waiting_ + 1;\n          return false;\n        }\n        sVar10 = (pTVar2->name_).field_2._M_allocated_capacity;\n        if (*(int *)(sVar10 + 4) == 0) {\n          *(Task **)(sVar10 + 4) = t;\n          (pTVar2->name_).field_2._M_allocated_capacity = (size_type)t;\n          goto LAB_002d36dc;\n        }\n        goto LAB_002d386c;\n      }\n      goto LAB_002d3834;\n    }" if (parenthesized_expression "(*(char *)&pTVar2->_vptr_Task != '\0')" ( (binary_expression "*(char *)&pTVar2->_vptr_Task != '\0'" (pointer_expression "*(char *)&pTVar2->_vptr_Task" * (cast_expression "(char *)&pTVar2->_vptr_Task" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pTVar2->_vptr_Task" & (field_expression "pTVar2->_vptr_Task" identifier -> field_identifier)))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if ((int)pTVar2->list_next_ < 1) goto LAB_002d3724;\nLAB_002d36ac:\n      if (t->list_next_ == (Task *)0x0) {\n        if ((pTVar2->name_)._M_string_length == 0) {\n          (pTVar2->name_)._M_string_length = (size_type)t;\n          (pTVar2->name_).field_2._M_allocated_capacity = (size_type)t;\nLAB_002d36dc:\n          this->waiting_ = this->waiting_ + 1;\n          return false;\n        }\n        sVar10 = (pTVar2->name_).field_2._M_allocated_capacity;\n        if (*(int *)(sVar10 + 4) == 0) {\n          *(Task **)(sVar10 + 4) = t;\n          (pTVar2->name_).field_2._M_allocated_capacity = (size_type)t;\n          goto LAB_002d36dc;\n        }\n        goto LAB_002d386c;\n      }\n      goto LAB_002d3834;\n    }" { (if_statement "if ((int)pTVar2->list_next_ < 1) goto LAB_002d3724;" if (parenthesized_expression "((int)pTVar2->list_next_ < 1)" ( (binary_expression "(int)pTVar2->list_next_ < 1" (cast_expression "(int)pTVar2->list_next_" ( (type_descriptor "int" primitive_type) ) (field_expression "pTVar2->list_next_" identifier -> field_identifier)) < number_literal) )) (goto_statement "goto LAB_002d3724;" goto statement_identifier ;)) (labeled_statement "LAB_002d36ac:\n      if (t->list_next_ == (Task *)0x0) {\n        if ((pTVar2->name_)._M_string_length == 0) {\n          (pTVar2->name_)._M_string_length = (size_type)t;\n          (pTVar2->name_).field_2._M_allocated_capacity = (size_type)t;\nLAB_002d36dc:\n          this->waiting_ = this->waiting_ + 1;\n          return false;\n        }\n        sVar10 = (pTVar2->name_).field_2._M_allocated_capacity;\n        if (*(int *)(sVar10 + 4) == 0) {\n          *(Task **)(sVar10 + 4) = t;\n          (pTVar2->name_).field_2._M_allocated_capacity = (size_type)t;\n          goto LAB_002d36dc;\n        }\n        goto LAB_002d386c;\n      }" statement_identifier : (if_statement "if (t->list_next_ == (Task *)0x0) {\n        if ((pTVar2->name_)._M_string_length == 0) {\n          (pTVar2->name_)._M_string_length = (size_type)t;\n          (pTVar2->name_).field_2._M_allocated_capacity = (size_type)t;\nLAB_002d36dc:\n          this->waiting_ = this->waiting_ + 1;\n          return false;\n        }\n        sVar10 = (pTVar2->name_).field_2._M_allocated_capacity;\n        if (*(int *)(sVar10 + 4) == 0) {\n          *(Task **)(sVar10 + 4) = t;\n          (pTVar2->name_).field_2._M_allocated_capacity = (size_type)t;\n          goto LAB_002d36dc;\n        }\n        goto LAB_002d386c;\n      }" if (parenthesized_expression "(t->list_next_ == (Task *)0x0)" ( (binary_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)) )) (compound_statement "{\n        if ((pTVar2->name_)._M_string_length == 0) {\n          (pTVar2->name_)._M_string_length = (size_type)t;\n          (pTVar2->name_).field_2._M_allocated_capacity = (size_type)t;\nLAB_002d36dc:\n          this->waiting_ = this->waiting_ + 1;\n          return false;\n        }\n        sVar10 = (pTVar2->name_).field_2._M_allocated_capacity;\n        if (*(int *)(sVar10 + 4) == 0) {\n          *(Task **)(sVar10 + 4) = t;\n          (pTVar2->name_).field_2._M_allocated_capacity = (size_type)t;\n          goto LAB_002d36dc;\n        }\n        goto LAB_002d386c;\n      }" { (if_statement "if ((pTVar2->name_)._M_string_length == 0) {\n          (pTVar2->name_)._M_string_length = (size_type)t;\n          (pTVar2->name_).field_2._M_allocated_capacity = (size_type)t;\nLAB_002d36dc:\n          this->waiting_ = this->waiting_ + 1;\n          return false;\n        }" if (parenthesized_expression "((pTVar2->name_)._M_string_length == 0)" ( (binary_expression "(pTVar2->name_)._M_string_length == 0" (field_expression "(pTVar2->name_)._M_string_length" (parenthesized_expression "(pTVar2->name_)" ( (field_expression "pTVar2->name_" identifier -> field_identifier) )) . field_identifier) == number_literal) )) (compound_statement "{\n          (pTVar2->name_)._M_string_length = (size_type)t;\n          (pTVar2->name_).field_2._M_allocated_capacity = (size_type)t;\nLAB_002d36dc:\n          this->waiting_ = this->waiting_ + 1;\n          return false;\n        }" { (expression_statement "(pTVar2->name_)._M_string_length = (size_type)t;" (assignment_expression "(pTVar2->name_)._M_string_length = (size_type)t" (field_expression "(pTVar2->name_)._M_string_length" (parenthesized_expression "(pTVar2->name_)" ( (field_expression "pTVar2->name_" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(size_type)t" ( (type_descriptor "size_type" type_identifier) ) identifier)) ;) (expression_statement "(pTVar2->name_).field_2._M_allocated_capacity = (size_type)t;" (assignment_expression "(pTVar2->name_).field_2._M_allocated_capacity = (size_type)t" (field_expression "(pTVar2->name_).field_2._M_allocated_capacity" (field_expression "(pTVar2->name_).field_2" (parenthesized_expression "(pTVar2->name_)" ( (field_expression "pTVar2->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(size_type)t" ( (type_descriptor "size_type" type_identifier) ) identifier)) ;) (labeled_statement "LAB_002d36dc:\n          this->waiting_ = this->waiting_ + 1;" statement_identifier : (expression_statement "this->waiting_ = this->waiting_ + 1;" (assignment_expression "this->waiting_ = this->waiting_ + 1" (field_expression "this->waiting_" identifier -> field_identifier) = (binary_expression "this->waiting_ + 1" (field_expression "this->waiting_" identifier -> field_identifier) + number_literal)) ;)) (return_statement "return false;" return false ;) })) (expression_statement "sVar10 = (pTVar2->name_).field_2._M_allocated_capacity;" (assignment_expression "sVar10 = (pTVar2->name_).field_2._M_allocated_capacity" identifier = (field_expression "(pTVar2->name_).field_2._M_allocated_capacity" (field_expression "(pTVar2->name_).field_2" (parenthesized_expression "(pTVar2->name_)" ( (field_expression "pTVar2->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if (*(int *)(sVar10 + 4) == 0) {\n          *(Task **)(sVar10 + 4) = t;\n          (pTVar2->name_).field_2._M_allocated_capacity = (size_type)t;\n          goto LAB_002d36dc;\n        }" if (parenthesized_expression "(*(int *)(sVar10 + 4) == 0)" ( (binary_expression "*(int *)(sVar10 + 4) == 0" (pointer_expression "*(int *)(sVar10 + 4)" * (cast_expression "(int *)(sVar10 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(sVar10 + 4)" ( (binary_expression "sVar10 + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          *(Task **)(sVar10 + 4) = t;\n          (pTVar2->name_).field_2._M_allocated_capacity = (size_type)t;\n          goto LAB_002d36dc;\n        }" { (expression_statement "*(Task **)(sVar10 + 4) = t;" (assignment_expression "*(Task **)(sVar10 + 4) = t" (pointer_expression "*(Task **)(sVar10 + 4)" * (cast_expression "(Task **)(sVar10 + 4)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(sVar10 + 4)" ( (binary_expression "sVar10 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "(pTVar2->name_).field_2._M_allocated_capacity = (size_type)t;" (assignment_expression "(pTVar2->name_).field_2._M_allocated_capacity = (size_type)t" (field_expression "(pTVar2->name_).field_2._M_allocated_capacity" (field_expression "(pTVar2->name_).field_2" (parenthesized_expression "(pTVar2->name_)" ( (field_expression "pTVar2->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(size_type)t" ( (type_descriptor "size_type" type_identifier) ) identifier)) ;) (goto_statement "goto LAB_002d36dc;" goto statement_identifier ;) })) (goto_statement "goto LAB_002d386c;" goto statement_identifier ;) }))) (goto_statement "goto LAB_002d3834;" goto statement_identifier ;) })) }) (else_clause "else {\n    pTVar2 = (Task *)(*t->_vptr_Task[2])(t);\n    if (pTVar2 != (Task *)0x0) goto LAB_002d36ac;\nLAB_002d3724:\n    if (*pret == (Task *)0x0) {\n      if (((CONCAT31(in_register_00000018,is_blocker) == 0) || (t->should_run_soon_ != false)) ||\n         (((this->first_tasks_).head_ == (Task *)0x0 && ((this->tasks_).head_ == (Task *)0x0)))) {\n        *pret = t;\n        return true;\n      }\n      pTVar2 = t->list_next_;\n    }\n    else {\n      pTVar2 = t->list_next_;\n      if (t->should_run_soon_ != false) {\n        if (pTVar2 == (Task *)0x0) {\n          if ((this->first_tasks_).head_ == (Task *)0x0) {\n            (this->first_tasks_).head_ = t;\n            (this->first_tasks_).tail_ = t;\n            goto LAB_002d3768;\n          }\n          pTVar2 = (this->first_tasks_).tail_;\n          if (pTVar2->list_next_ == (Task *)0x0) {\n            pTVar2->list_next_ = t;\n            (this->first_tasks_).tail_ = t;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }\n        goto LAB_002d3834;\n      }\n    }\n    if (pTVar2 == (Task *)0x0) {\n      if ((this->tasks_).head_ == (Task *)0x0) {\n        (this->tasks_).head_ = t;\n        (this->tasks_).tail_ = t;\nLAB_002d3768:\n        pCVar3 = (this->condvar_).condvar_;\n        (*pCVar3->_vptr_Condvar_impl[3])(pCVar3);\n        return false;\n      }\n      pTVar2 = (this->tasks_).tail_;\n      if (pTVar2->list_next_ == (Task *)0x0) {\n        pTVar2->list_next_ = t;\n        (this->tasks_).tail_ = t;\n        goto LAB_002d3768;\n      }\n      goto LAB_002d386c;\n    }\nLAB_002d3834:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x39bc,0x29,\n               PTR_s_in_a_linker_script_004c191c + 0x3aac);\n  }" else (compound_statement "{\n    pTVar2 = (Task *)(*t->_vptr_Task[2])(t);\n    if (pTVar2 != (Task *)0x0) goto LAB_002d36ac;\nLAB_002d3724:\n    if (*pret == (Task *)0x0) {\n      if (((CONCAT31(in_register_00000018,is_blocker) == 0) || (t->should_run_soon_ != false)) ||\n         (((this->first_tasks_).head_ == (Task *)0x0 && ((this->tasks_).head_ == (Task *)0x0)))) {\n        *pret = t;\n        return true;\n      }\n      pTVar2 = t->list_next_;\n    }\n    else {\n      pTVar2 = t->list_next_;\n      if (t->should_run_soon_ != false) {\n        if (pTVar2 == (Task *)0x0) {\n          if ((this->first_tasks_).head_ == (Task *)0x0) {\n            (this->first_tasks_).head_ = t;\n            (this->first_tasks_).tail_ = t;\n            goto LAB_002d3768;\n          }\n          pTVar2 = (this->first_tasks_).tail_;\n          if (pTVar2->list_next_ == (Task *)0x0) {\n            pTVar2->list_next_ = t;\n            (this->first_tasks_).tail_ = t;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }\n        goto LAB_002d3834;\n      }\n    }\n    if (pTVar2 == (Task *)0x0) {\n      if ((this->tasks_).head_ == (Task *)0x0) {\n        (this->tasks_).head_ = t;\n        (this->tasks_).tail_ = t;\nLAB_002d3768:\n        pCVar3 = (this->condvar_).condvar_;\n        (*pCVar3->_vptr_Condvar_impl[3])(pCVar3);\n        return false;\n      }\n      pTVar2 = (this->tasks_).tail_;\n      if (pTVar2->list_next_ == (Task *)0x0) {\n        pTVar2->list_next_ = t;\n        (this->tasks_).tail_ = t;\n        goto LAB_002d3768;\n      }\n      goto LAB_002d386c;\n    }\nLAB_002d3834:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x39bc,0x29,\n               PTR_s_in_a_linker_script_004c191c + 0x3aac);\n  }" { (expression_statement "pTVar2 = (Task *)(*t->_vptr_Task[2])(t);" (assignment_expression "pTVar2 = (Task *)(*t->_vptr_Task[2])(t)" identifier = (cast_expression "(Task *)(*t->_vptr_Task[2])(t)" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*t->_vptr_Task[2])(t)" (parenthesized_expression "(*t->_vptr_Task[2])" ( (pointer_expression "*t->_vptr_Task[2]" * (subscript_expression "t->_vptr_Task[2]" (field_expression "t->_vptr_Task" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(t)" ( identifier ))))) ;) (if_statement "if (pTVar2 != (Task *)0x0) goto LAB_002d36ac;" if (parenthesized_expression "(pTVar2 != (Task *)0x0)" ( (binary_expression "pTVar2 != (Task *)0x0" identifier != (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_002d36ac;" goto statement_identifier ;)) (labeled_statement "LAB_002d3724:\n    if (*pret == (Task *)0x0) {\n      if (((CONCAT31(in_register_00000018,is_blocker) == 0) || (t->should_run_soon_ != false)) ||\n         (((this->first_tasks_).head_ == (Task *)0x0 && ((this->tasks_).head_ == (Task *)0x0)))) {\n        *pret = t;\n        return true;\n      }\n      pTVar2 = t->list_next_;\n    }\n    else {\n      pTVar2 = t->list_next_;\n      if (t->should_run_soon_ != false) {\n        if (pTVar2 == (Task *)0x0) {\n          if ((this->first_tasks_).head_ == (Task *)0x0) {\n            (this->first_tasks_).head_ = t;\n            (this->first_tasks_).tail_ = t;\n            goto LAB_002d3768;\n          }\n          pTVar2 = (this->first_tasks_).tail_;\n          if (pTVar2->list_next_ == (Task *)0x0) {\n            pTVar2->list_next_ = t;\n            (this->first_tasks_).tail_ = t;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }\n        goto LAB_002d3834;\n      }\n    }" statement_identifier : (if_statement "if (*pret == (Task *)0x0) {\n      if (((CONCAT31(in_register_00000018,is_blocker) == 0) || (t->should_run_soon_ != false)) ||\n         (((this->first_tasks_).head_ == (Task *)0x0 && ((this->tasks_).head_ == (Task *)0x0)))) {\n        *pret = t;\n        return true;\n      }\n      pTVar2 = t->list_next_;\n    }\n    else {\n      pTVar2 = t->list_next_;\n      if (t->should_run_soon_ != false) {\n        if (pTVar2 == (Task *)0x0) {\n          if ((this->first_tasks_).head_ == (Task *)0x0) {\n            (this->first_tasks_).head_ = t;\n            (this->first_tasks_).tail_ = t;\n            goto LAB_002d3768;\n          }\n          pTVar2 = (this->first_tasks_).tail_;\n          if (pTVar2->list_next_ == (Task *)0x0) {\n            pTVar2->list_next_ = t;\n            (this->first_tasks_).tail_ = t;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }\n        goto LAB_002d3834;\n      }\n    }" if (parenthesized_expression "(*pret == (Task *)0x0)" ( (binary_expression "*pret == (Task *)0x0" (pointer_expression "*pret" * identifier) == (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (((CONCAT31(in_register_00000018,is_blocker) == 0) || (t->should_run_soon_ != false)) ||\n         (((this->first_tasks_).head_ == (Task *)0x0 && ((this->tasks_).head_ == (Task *)0x0)))) {\n        *pret = t;\n        return true;\n      }\n      pTVar2 = t->list_next_;\n    }" { (if_statement "if (((CONCAT31(in_register_00000018,is_blocker) == 0) || (t->should_run_soon_ != false)) ||\n         (((this->first_tasks_).head_ == (Task *)0x0 && ((this->tasks_).head_ == (Task *)0x0)))) {\n        *pret = t;\n        return true;\n      }" if (parenthesized_expression "(((CONCAT31(in_register_00000018,is_blocker) == 0) || (t->should_run_soon_ != false)) ||\n         (((this->first_tasks_).head_ == (Task *)0x0 && ((this->tasks_).head_ == (Task *)0x0))))" ( (binary_expression "((CONCAT31(in_register_00000018,is_blocker) == 0) || (t->should_run_soon_ != false)) ||\n         (((this->first_tasks_).head_ == (Task *)0x0 && ((this->tasks_).head_ == (Task *)0x0)))" (parenthesized_expression "((CONCAT31(in_register_00000018,is_blocker) == 0) || (t->should_run_soon_ != false))" ( (binary_expression "(CONCAT31(in_register_00000018,is_blocker) == 0) || (t->should_run_soon_ != false)" (parenthesized_expression "(CONCAT31(in_register_00000018,is_blocker) == 0)" ( (binary_expression "CONCAT31(in_register_00000018,is_blocker) == 0" (call_expression "CONCAT31(in_register_00000018,is_blocker)" identifier (argument_list "(in_register_00000018,is_blocker)" ( identifier , identifier ))) == number_literal) )) || (parenthesized_expression "(t->should_run_soon_ != false)" ( (binary_expression "t->should_run_soon_ != false" (field_expression "t->should_run_soon_" identifier -> field_identifier) != false) ))) )) || (parenthesized_expression "(((this->first_tasks_).head_ == (Task *)0x0 && ((this->tasks_).head_ == (Task *)0x0)))" ( (parenthesized_expression "((this->first_tasks_).head_ == (Task *)0x0 && ((this->tasks_).head_ == (Task *)0x0))" ( (binary_expression "(this->first_tasks_).head_ == (Task *)0x0 && ((this->tasks_).head_ == (Task *)0x0)" (binary_expression "(this->first_tasks_).head_ == (Task *)0x0" (field_expression "(this->first_tasks_).head_" (parenthesized_expression "(this->first_tasks_)" ( (field_expression "this->first_tasks_" identifier -> field_identifier) )) . field_identifier) == (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "((this->tasks_).head_ == (Task *)0x0)" ( (binary_expression "(this->tasks_).head_ == (Task *)0x0" (field_expression "(this->tasks_).head_" (parenthesized_expression "(this->tasks_)" ( (field_expression "this->tasks_" identifier -> field_identifier) )) . field_identifier) == (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) ))) )) (compound_statement "{\n        *pret = t;\n        return true;\n      }" { (expression_statement "*pret = t;" (assignment_expression "*pret = t" (pointer_expression "*pret" * identifier) = identifier) ;) (return_statement "return true;" return true ;) })) (expression_statement "pTVar2 = t->list_next_;" (assignment_expression "pTVar2 = t->list_next_" identifier = (field_expression "t->list_next_" identifier -> field_identifier)) ;) }) (else_clause "else {\n      pTVar2 = t->list_next_;\n      if (t->should_run_soon_ != false) {\n        if (pTVar2 == (Task *)0x0) {\n          if ((this->first_tasks_).head_ == (Task *)0x0) {\n            (this->first_tasks_).head_ = t;\n            (this->first_tasks_).tail_ = t;\n            goto LAB_002d3768;\n          }\n          pTVar2 = (this->first_tasks_).tail_;\n          if (pTVar2->list_next_ == (Task *)0x0) {\n            pTVar2->list_next_ = t;\n            (this->first_tasks_).tail_ = t;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }\n        goto LAB_002d3834;\n      }\n    }" else (compound_statement "{\n      pTVar2 = t->list_next_;\n      if (t->should_run_soon_ != false) {\n        if (pTVar2 == (Task *)0x0) {\n          if ((this->first_tasks_).head_ == (Task *)0x0) {\n            (this->first_tasks_).head_ = t;\n            (this->first_tasks_).tail_ = t;\n            goto LAB_002d3768;\n          }\n          pTVar2 = (this->first_tasks_).tail_;\n          if (pTVar2->list_next_ == (Task *)0x0) {\n            pTVar2->list_next_ = t;\n            (this->first_tasks_).tail_ = t;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }\n        goto LAB_002d3834;\n      }\n    }" { (expression_statement "pTVar2 = t->list_next_;" (assignment_expression "pTVar2 = t->list_next_" identifier = (field_expression "t->list_next_" identifier -> field_identifier)) ;) (if_statement "if (t->should_run_soon_ != false) {\n        if (pTVar2 == (Task *)0x0) {\n          if ((this->first_tasks_).head_ == (Task *)0x0) {\n            (this->first_tasks_).head_ = t;\n            (this->first_tasks_).tail_ = t;\n            goto LAB_002d3768;\n          }\n          pTVar2 = (this->first_tasks_).tail_;\n          if (pTVar2->list_next_ == (Task *)0x0) {\n            pTVar2->list_next_ = t;\n            (this->first_tasks_).tail_ = t;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }\n        goto LAB_002d3834;\n      }" if (parenthesized_expression "(t->should_run_soon_ != false)" ( (binary_expression "t->should_run_soon_ != false" (field_expression "t->should_run_soon_" identifier -> field_identifier) != false) )) (compound_statement "{\n        if (pTVar2 == (Task *)0x0) {\n          if ((this->first_tasks_).head_ == (Task *)0x0) {\n            (this->first_tasks_).head_ = t;\n            (this->first_tasks_).tail_ = t;\n            goto LAB_002d3768;\n          }\n          pTVar2 = (this->first_tasks_).tail_;\n          if (pTVar2->list_next_ == (Task *)0x0) {\n            pTVar2->list_next_ = t;\n            (this->first_tasks_).tail_ = t;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }\n        goto LAB_002d3834;\n      }" { (if_statement "if (pTVar2 == (Task *)0x0) {\n          if ((this->first_tasks_).head_ == (Task *)0x0) {\n            (this->first_tasks_).head_ = t;\n            (this->first_tasks_).tail_ = t;\n            goto LAB_002d3768;\n          }\n          pTVar2 = (this->first_tasks_).tail_;\n          if (pTVar2->list_next_ == (Task *)0x0) {\n            pTVar2->list_next_ = t;\n            (this->first_tasks_).tail_ = t;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }" if (parenthesized_expression "(pTVar2 == (Task *)0x0)" ( (binary_expression "pTVar2 == (Task *)0x0" identifier == (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if ((this->first_tasks_).head_ == (Task *)0x0) {\n            (this->first_tasks_).head_ = t;\n            (this->first_tasks_).tail_ = t;\n            goto LAB_002d3768;\n          }\n          pTVar2 = (this->first_tasks_).tail_;\n          if (pTVar2->list_next_ == (Task *)0x0) {\n            pTVar2->list_next_ = t;\n            (this->first_tasks_).tail_ = t;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }" { (if_statement "if ((this->first_tasks_).head_ == (Task *)0x0) {\n            (this->first_tasks_).head_ = t;\n            (this->first_tasks_).tail_ = t;\n            goto LAB_002d3768;\n          }" if (parenthesized_expression "((this->first_tasks_).head_ == (Task *)0x0)" ( (binary_expression "(this->first_tasks_).head_ == (Task *)0x0" (field_expression "(this->first_tasks_).head_" (parenthesized_expression "(this->first_tasks_)" ( (field_expression "this->first_tasks_" identifier -> field_identifier) )) . field_identifier) == (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            (this->first_tasks_).head_ = t;\n            (this->first_tasks_).tail_ = t;\n            goto LAB_002d3768;\n          }" { (expression_statement "(this->first_tasks_).head_ = t;" (assignment_expression "(this->first_tasks_).head_ = t" (field_expression "(this->first_tasks_).head_" (parenthesized_expression "(this->first_tasks_)" ( (field_expression "this->first_tasks_" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(this->first_tasks_).tail_ = t;" (assignment_expression "(this->first_tasks_).tail_ = t" (field_expression "(this->first_tasks_).tail_" (parenthesized_expression "(this->first_tasks_)" ( (field_expression "this->first_tasks_" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (goto_statement "goto LAB_002d3768;" goto statement_identifier ;) })) (expression_statement "pTVar2 = (this->first_tasks_).tail_;" (assignment_expression "pTVar2 = (this->first_tasks_).tail_" identifier = (field_expression "(this->first_tasks_).tail_" (parenthesized_expression "(this->first_tasks_)" ( (field_expression "this->first_tasks_" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (pTVar2->list_next_ == (Task *)0x0) {\n            pTVar2->list_next_ = t;\n            (this->first_tasks_).tail_ = t;\n            goto LAB_002d3768;\n          }" if (parenthesized_expression "(pTVar2->list_next_ == (Task *)0x0)" ( (binary_expression "pTVar2->list_next_ == (Task *)0x0" (field_expression "pTVar2->list_next_" identifier -> field_identifier) == (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pTVar2->list_next_ = t;\n            (this->first_tasks_).tail_ = t;\n            goto LAB_002d3768;\n          }" { (expression_statement "pTVar2->list_next_ = t;" (assignment_expression "pTVar2->list_next_ = t" (field_expression "pTVar2->list_next_" identifier -> field_identifier) = identifier) ;) (expression_statement "(this->first_tasks_).tail_ = t;" (assignment_expression "(this->first_tasks_).tail_ = t" (field_expression "(this->first_tasks_).tail_" (parenthesized_expression "(this->first_tasks_)" ( (field_expression "this->first_tasks_" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (goto_statement "goto LAB_002d3768;" goto statement_identifier ;) })) (goto_statement "goto LAB_002d386c;" goto statement_identifier ;) })) (goto_statement "goto LAB_002d3834;" goto statement_identifier ;) })) })))) (if_statement "if (pTVar2 == (Task *)0x0) {\n      if ((this->tasks_).head_ == (Task *)0x0) {\n        (this->tasks_).head_ = t;\n        (this->tasks_).tail_ = t;\nLAB_002d3768:\n        pCVar3 = (this->condvar_).condvar_;\n        (*pCVar3->_vptr_Condvar_impl[3])(pCVar3);\n        return false;\n      }\n      pTVar2 = (this->tasks_).tail_;\n      if (pTVar2->list_next_ == (Task *)0x0) {\n        pTVar2->list_next_ = t;\n        (this->tasks_).tail_ = t;\n        goto LAB_002d3768;\n      }\n      goto LAB_002d386c;\n    }" if (parenthesized_expression "(pTVar2 == (Task *)0x0)" ( (binary_expression "pTVar2 == (Task *)0x0" identifier == (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if ((this->tasks_).head_ == (Task *)0x0) {\n        (this->tasks_).head_ = t;\n        (this->tasks_).tail_ = t;\nLAB_002d3768:\n        pCVar3 = (this->condvar_).condvar_;\n        (*pCVar3->_vptr_Condvar_impl[3])(pCVar3);\n        return false;\n      }\n      pTVar2 = (this->tasks_).tail_;\n      if (pTVar2->list_next_ == (Task *)0x0) {\n        pTVar2->list_next_ = t;\n        (this->tasks_).tail_ = t;\n        goto LAB_002d3768;\n      }\n      goto LAB_002d386c;\n    }" { (if_statement "if ((this->tasks_).head_ == (Task *)0x0) {\n        (this->tasks_).head_ = t;\n        (this->tasks_).tail_ = t;\nLAB_002d3768:\n        pCVar3 = (this->condvar_).condvar_;\n        (*pCVar3->_vptr_Condvar_impl[3])(pCVar3);\n        return false;\n      }" if (parenthesized_expression "((this->tasks_).head_ == (Task *)0x0)" ( (binary_expression "(this->tasks_).head_ == (Task *)0x0" (field_expression "(this->tasks_).head_" (parenthesized_expression "(this->tasks_)" ( (field_expression "this->tasks_" identifier -> field_identifier) )) . field_identifier) == (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (this->tasks_).head_ = t;\n        (this->tasks_).tail_ = t;\nLAB_002d3768:\n        pCVar3 = (this->condvar_).condvar_;\n        (*pCVar3->_vptr_Condvar_impl[3])(pCVar3);\n        return false;\n      }" { (expression_statement "(this->tasks_).head_ = t;" (assignment_expression "(this->tasks_).head_ = t" (field_expression "(this->tasks_).head_" (parenthesized_expression "(this->tasks_)" ( (field_expression "this->tasks_" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(this->tasks_).tail_ = t;" (assignment_expression "(this->tasks_).tail_ = t" (field_expression "(this->tasks_).tail_" (parenthesized_expression "(this->tasks_)" ( (field_expression "this->tasks_" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (labeled_statement "LAB_002d3768:\n        pCVar3 = (this->condvar_).condvar_;" statement_identifier : (expression_statement "pCVar3 = (this->condvar_).condvar_;" (assignment_expression "pCVar3 = (this->condvar_).condvar_" identifier = (field_expression "(this->condvar_).condvar_" (parenthesized_expression "(this->condvar_)" ( (field_expression "this->condvar_" identifier -> field_identifier) )) . field_identifier)) ;)) (expression_statement "(*pCVar3->_vptr_Condvar_impl[3])(pCVar3);" (call_expression "(*pCVar3->_vptr_Condvar_impl[3])(pCVar3)" (parenthesized_expression "(*pCVar3->_vptr_Condvar_impl[3])" ( (pointer_expression "*pCVar3->_vptr_Condvar_impl[3]" * (subscript_expression "pCVar3->_vptr_Condvar_impl[3]" (field_expression "pCVar3->_vptr_Condvar_impl" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(pCVar3)" ( identifier ))) ;) (return_statement "return false;" return false ;) })) (expression_statement "pTVar2 = (this->tasks_).tail_;" (assignment_expression "pTVar2 = (this->tasks_).tail_" identifier = (field_expression "(this->tasks_).tail_" (parenthesized_expression "(this->tasks_)" ( (field_expression "this->tasks_" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (pTVar2->list_next_ == (Task *)0x0) {\n        pTVar2->list_next_ = t;\n        (this->tasks_).tail_ = t;\n        goto LAB_002d3768;\n      }" if (parenthesized_expression "(pTVar2->list_next_ == (Task *)0x0)" ( (binary_expression "pTVar2->list_next_ == (Task *)0x0" (field_expression "pTVar2->list_next_" identifier -> field_identifier) == (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pTVar2->list_next_ = t;\n        (this->tasks_).tail_ = t;\n        goto LAB_002d3768;\n      }" { (expression_statement "pTVar2->list_next_ = t;" (assignment_expression "pTVar2->list_next_ = t" (field_expression "pTVar2->list_next_" identifier -> field_identifier) = identifier) ;) (expression_statement "(this->tasks_).tail_ = t;" (assignment_expression "(this->tasks_).tail_ = t" (field_expression "(this->tasks_).tail_" (parenthesized_expression "(this->tasks_)" ( (field_expression "this->tasks_" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (goto_statement "goto LAB_002d3768;" goto statement_identifier ;) })) (goto_statement "goto LAB_002d386c;" goto statement_identifier ;) })) (labeled_statement "LAB_002d3834:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x39bc,0x29,\n               PTR_s_in_a_linker_script_004c191c + 0x3aac);" statement_identifier : (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x39bc,0x29,\n               PTR_s_in_a_linker_script_004c191c + 0x3aac);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x39bc,0x29,\n               PTR_s_in_a_linker_script_004c191c + 0x3aac)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_in_a_linker_script_004c191c + 0x39bc,0x29,\n               PTR_s_in_a_linker_script_004c191c + 0x3aac)" ( (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x39bc" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x3aac" identifier + number_literal) ))) ;)) }))) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x7f8,0xab,\n             PTR_s_in_a_linker_script_004c191c + 0x3ad4);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x7f8,0xab,\n             PTR_s_in_a_linker_script_004c191c + 0x3ad4)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x7f8,0xab,\n             PTR_s_in_a_linker_script_004c191c + 0x3ad4)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + -0x7f8" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x3ad4" identifier + number_literal) ))) ;) (labeled_statement "LAB_002d386c:\n  iVar22 = 0x5a;" statement_identifier : (expression_statement "iVar22 = 0x5a;" (assignment_expression "iVar22 = 0x5a" identifier = number_literal) ;)) (expression_statement "piVar24 = (int *)(PTR_s_in_a_linker_script_004c191c + 0x3ab8);" (assignment_expression "piVar24 = (int *)(PTR_s_in_a_linker_script_004c191c + 0x3ab8)" identifier = (cast_expression "(int *)(PTR_s_in_a_linker_script_004c191c + 0x3ab8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_in_a_linker_script_004c191c + 0x3ab8)" ( (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x3ab8" identifier + number_literal) )))) ;) (expression_statement "pWVar15 = (Workqueue *)(PTR_s__s_004c1a50 + 0x970);" (assignment_expression "pWVar15 = (Workqueue *)(PTR_s__s_004c1a50 + 0x970)" identifier = (cast_expression "(Workqueue *)(PTR_s__s_004c1a50 + 0x970)" ( (type_descriptor "Workqueue *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s__s_004c1a50 + 0x970)" ( (binary_expression "PTR_s__s_004c1a50 + 0x970" identifier + number_literal) )))) ;) (expression_statement "puVar32 = PTR_do_gold_unreachable_004c1a30;" (assignment_expression "puVar32 = PTR_do_gold_unreachable_004c1a30" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)();" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)()" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar11 = *piVar24;" (assignment_expression "iVar11 = *piVar24" identifier = (pointer_expression "*piVar24" * identifier)) ;) (expression_statement "piVar28 = piVar24 + 1;" (assignment_expression "piVar28 = piVar24 + 1" identifier = (binary_expression "piVar24 + 1" identifier + number_literal)) ;) (expression_statement "apTStack_48[0] = (Task *)0x0;" (assignment_expression "apTStack_48[0] = (Task *)0x0" (subscript_expression "apTStack_48[0]" identifier [ number_literal ]) = (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (piVar28 == piVar24 + iVar11 + 1) {\n    uVar9 = 0;\n  }\n  else {\n    uVar29 = *(undefined4 *)(puVar32 + 0x1f12c4);\n    pWStack_40 = this;\n    do {\n      while (pcVar27 = (char *)*piVar28, *pcVar27 == '\0') {\n        if (iVar22 != *(int *)(pcVar27 + 8)) {\n          iVar11 = 0x84;\n          pcVar33 = *(code **)(puVar32 + 0x1ee1ac);\n          puVar16 = (undefined4 *)(*(int *)(puVar32 + 0x1ed9f8) + -0x7f8);\n          (*pcVar33)(puVar16,0x84,*(int *)(puVar32 + 0x1ee098) + 0x3a5c);\n          (**(code **)(*(int *)*puVar16 + 8))((int *)*puVar16);\n          pcVar34 = *(code **)(*(int *)puVar16[9] + 8);\n          if (pcVar34 == *(code **)(pcVar33 + 0x1f1098)) {\n            if (iVar11 < 1) {\n              pcVar27 = &DAT_0000006e;\n              puVar17 = (undefined4 *)(*(int *)(pcVar33 + 0x1ede68) + 0x39bc);\n              (**(code **)(pcVar33 + 0x1edf7c))(puVar17,0x6e,*(int *)(pcVar33 + 0x1ede68) + 0x3aec);\n              (**(code **)(*(int *)*puVar16 + 0xc))((int *)*puVar16);\n              pcVar33 = *(code **)(pcVar33 + 0x1ed814);\n              (*pcVar33)();\n              (**(code **)(*(int *)*puVar17 + 8))((int *)*puVar17);\n              if (*pcVar27 != '\0') {\n                piVar24 = (int *)*puVar17;\n                iVar11 = *piVar24;\n                pcVar27[8] = '\0';\n                pcVar27[9] = '\0';\n                pcVar27[10] = '\0';\n                pcVar27[0xb] = '\0';\n                *(int *)(pcVar27 + 4) = *(int *)(pcVar27 + 4) + 1;\n                    /* WARNING: Could not recover jumptable at 0x002d3c1c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                uVar9 = (**(code **)(iVar11 + 0xc))(piVar24);\n                return (bool)uVar9;\n              }\n              iVar11 = 0x8e;\n              pWVar18 = (Workqueue *)(*(int *)(pcVar33 + 0x1ed6d4) + -0x7f8);\n              (**(code **)(pcVar33 + 0x1ede88))(pWVar18,0x8e,*(int *)(pcVar33 + 0x1edd74) + 0x3a50);\n              (**(code **)(*(int *)*puVar17 + 0xc))((int *)*puVar17);\n              pcVar33 = *(code **)(pcVar33 + 0x1ed720);\n              this_00 = pWVar18;\n              (*pcVar33)();\n              pLVar5 = (this_00->lock_).lock_;\n              auStack_120[0] = 0;\n              pWStack_d8 = pWVar18;\n              puStack_d4 = puVar17;\n              uStack_d0 = uVar29;\n              piStack_cc = piVar24;\n              iStack_c8 = iVar22;\n              pWStack_c4 = pWVar15;\n              ppTStack_c0 = apTStack_48;\n              (*pLVar5->_vptr_Lock_impl[2])(pLVar5);\n              pTVar2 = find_runnable_or_wait(this_00,iVar11);\n              if (pTVar2 == (Task *)0x0) {\n                pLVar5 = (this_00->lock_).lock_;\n                (*pLVar5->_vptr_Lock_impl[3])(pLVar5);\n                return false;\n              }\n              p_Var31 = *(_func_int_varargs **)(pcVar33 + 0x1f0ee8);\n              if (pTVar2->_vptr_Task[3] != p_Var31) {\n                (*pTVar2->_vptr_Task[3])(pTVar2,auStack_120);\n              }\n              pLVar5 = (this_00->lock_).lock_;\n              plStack_fc = &TStack_168.start_time_.wall;\n              pcStack_100 = *(code **)(pcVar33 + 0x1f0eec);\n              p_Stack_f4 = *(_func_int_varargs **)(pcVar33 + 0x1f0ef0);\n              piVar24 = *(int **)(pcVar33 + 0x1edd48);\n              p_Var30 = *(_func_int_varargs **)(pcVar33 + 0x1f0ef4);\n              p_Var35 = pLVar5->_vptr_Lock_impl[3];\n              this_00->running_ = this_00->running_ + 1;\n              (*p_Var35)(pLVar5);\n              iStack_f8 = *(int *)(pcVar33 + 0x1edcb0) + 0x39f0;\n              iStack_ec = *(int *)(pcVar33 + 0x1edcb0) + 0x3a08;\n              iVar22 = *(int *)(pcVar33 + 0x1ee464);\n              goto LAB_002d3eac;\n            }\n            piVar24 = (int *)puVar16[8];\n          }\n          else {\n            (*pcVar34)((int *)puVar16[9],iVar11);\n            piVar24 = (int *)puVar16[8];\n          }\n          (**(code **)(*piVar24 + 0x10))(piVar24);\n                    /* WARNING: Could not recover jumptable at 0x002d3b4c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar9 = (**(code **)(*(int *)*puVar16 + 0xc))((int *)*puVar16);\n          return (bool)uVar9;\n        }\n        pcVar27[8] = '\0';\n        pcVar27[9] = '\0';\n        pcVar27[10] = '\0';\n        pcVar27[0xb] = '\0';\n        do {\n          pTVar2 = *(Task **)(pcVar27 + 0xc);\n          if (pTVar2 == (Task *)0x0) break;\n          pTVar4 = pTVar2->list_next_;\n          if (pTVar2 == *(Task **)(pcVar27 + 0x10)) {\n            if (pTVar4 != (Task *)0x0) goto LAB_002d3a94;\n            pcVar27[0xc] = '\0';\n            pcVar27[0xd] = '\0';\n            pcVar27[0xe] = '\0';\n            pcVar27[0xf] = '\0';\n            pcVar27[0x10] = '\0';\n            pcVar27[0x11] = '\0';\n            pcVar27[0x12] = '\0';\n            pcVar27[0x13] = '\0';\n          }\n          else {\n            *(Task **)(pcVar27 + 0xc) = pTVar4;\n            if (pTVar4 == (Task *)0x0) goto LAB_002d3a5c;\n            pTVar2->list_next_ = (Task *)0x0;\n          }\n          pWVar15->waiting_ = pWVar15->waiting_ + -1;\n          bVar8 = return_or_queue(pWVar15,pTVar2,false,apTStack_48);\n        } while (CONCAT31(extraout_var,bVar8) == 0);\nLAB_002d398c:\n        iVar11 = *piVar24;\n        piVar28 = piVar28 + 1;\n        if (piVar28 == piVar24 + iVar11 + 1) {\n          return (bool)(char)apTStack_48[0];\n        }\n      }\n      iVar7 = *(int *)(pcVar27 + 4) + -1;\n      if (*(int *)(pcVar27 + 4) < 1) goto LAB_002d3a78;\n      pcVar27[8] = '\0';\n      pcVar27[9] = '\0';\n      pcVar27[10] = '\0';\n      pcVar27[0xb] = '\0';\n      *(int *)(pcVar27 + 4) = iVar7;\n      if ((iVar7 == 0) && (pTVar2 = *(Task **)(pcVar27 + 0xc), pTVar2 != (Task *)0x0)) {\n        pTVar4 = pTVar2->list_next_;\n        if (*(Task **)(pcVar27 + 0x10) == pTVar2) goto LAB_002d3a40;\n        while (*(Task **)(pcVar27 + 0xc) = pTVar4, pTVar4 != (Task *)0x0) {\n          pTVar2->list_next_ = (Task *)0x0;\n          while( true ) {\n            pWVar15->waiting_ = pWVar15->waiting_ + -1;\n            return_or_queue(pWVar15,pTVar2,true,apTStack_48);\n            pTVar2 = *(Task **)(pcVar27 + 0xc);\n            if (pTVar2 == (Task *)0x0) goto LAB_002d398c;\n            pTVar4 = pTVar2->list_next_;\n            if (*(Task **)(pcVar27 + 0x10) != pTVar2) break;\nLAB_002d3a40:\n            if (pTVar4 != (Task *)0x0) goto LAB_002d3a94;\n            pcVar27[0xc] = '\0';\n            pcVar27[0xd] = '\0';\n            pcVar27[0xe] = '\0';\n            pcVar27[0xf] = '\0';\n            pcVar27[0x10] = '\0';\n            pcVar27[0x11] = '\0';\n            pcVar27[0x12] = '\0';\n            pcVar27[0x13] = '\0';\n          }\n        }\nLAB_002d3a5c:\n        uVar29 = 0x5a;\n        do {\n          (**(code **)(puVar32 + 0x1ee1ac))\n                    (*(int *)(puVar32 + 0x1ee098) + 0x39bc,uVar29,\n                     *(int *)(puVar32 + 0x1ee098) + 0x3aa0);\nLAB_002d3a78:\n          (**(code **)(puVar32 + 0x1ee1ac))\n                    (*(int *)(puVar32 + 0x1ed9f8) + -0x7f8,0xa1,\n                     *(int *)(puVar32 + 0x1ee098) + 0x3a6c);\nLAB_002d3a94:\n          uVar29 = 0x53;\n        } while( true );\n      }\n      piVar28 = piVar28 + 1;\n      uVar9 = SUB41(apTStack_48[0],0);\n    } while (piVar28 != piVar24 + iVar11 + 1);\n  }" if (parenthesized_expression "(piVar28 == piVar24 + iVar11 + 1)" ( (binary_expression "piVar28 == piVar24 + iVar11 + 1" identifier == (binary_expression "piVar24 + iVar11 + 1" (binary_expression "piVar24 + iVar11" identifier + identifier) + number_literal)) )) (compound_statement "{\n    uVar9 = 0;\n  }" { (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    uVar29 = *(undefined4 *)(puVar32 + 0x1f12c4);\n    pWStack_40 = this;\n    do {\n      while (pcVar27 = (char *)*piVar28, *pcVar27 == '\0') {\n        if (iVar22 != *(int *)(pcVar27 + 8)) {\n          iVar11 = 0x84;\n          pcVar33 = *(code **)(puVar32 + 0x1ee1ac);\n          puVar16 = (undefined4 *)(*(int *)(puVar32 + 0x1ed9f8) + -0x7f8);\n          (*pcVar33)(puVar16,0x84,*(int *)(puVar32 + 0x1ee098) + 0x3a5c);\n          (**(code **)(*(int *)*puVar16 + 8))((int *)*puVar16);\n          pcVar34 = *(code **)(*(int *)puVar16[9] + 8);\n          if (pcVar34 == *(code **)(pcVar33 + 0x1f1098)) {\n            if (iVar11 < 1) {\n              pcVar27 = &DAT_0000006e;\n              puVar17 = (undefined4 *)(*(int *)(pcVar33 + 0x1ede68) + 0x39bc);\n              (**(code **)(pcVar33 + 0x1edf7c))(puVar17,0x6e,*(int *)(pcVar33 + 0x1ede68) + 0x3aec);\n              (**(code **)(*(int *)*puVar16 + 0xc))((int *)*puVar16);\n              pcVar33 = *(code **)(pcVar33 + 0x1ed814);\n              (*pcVar33)();\n              (**(code **)(*(int *)*puVar17 + 8))((int *)*puVar17);\n              if (*pcVar27 != '\0') {\n                piVar24 = (int *)*puVar17;\n                iVar11 = *piVar24;\n                pcVar27[8] = '\0';\n                pcVar27[9] = '\0';\n                pcVar27[10] = '\0';\n                pcVar27[0xb] = '\0';\n                *(int *)(pcVar27 + 4) = *(int *)(pcVar27 + 4) + 1;\n                    /* WARNING: Could not recover jumptable at 0x002d3c1c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                uVar9 = (**(code **)(iVar11 + 0xc))(piVar24);\n                return (bool)uVar9;\n              }\n              iVar11 = 0x8e;\n              pWVar18 = (Workqueue *)(*(int *)(pcVar33 + 0x1ed6d4) + -0x7f8);\n              (**(code **)(pcVar33 + 0x1ede88))(pWVar18,0x8e,*(int *)(pcVar33 + 0x1edd74) + 0x3a50);\n              (**(code **)(*(int *)*puVar17 + 0xc))((int *)*puVar17);\n              pcVar33 = *(code **)(pcVar33 + 0x1ed720);\n              this_00 = pWVar18;\n              (*pcVar33)();\n              pLVar5 = (this_00->lock_).lock_;\n              auStack_120[0] = 0;\n              pWStack_d8 = pWVar18;\n              puStack_d4 = puVar17;\n              uStack_d0 = uVar29;\n              piStack_cc = piVar24;\n              iStack_c8 = iVar22;\n              pWStack_c4 = pWVar15;\n              ppTStack_c0 = apTStack_48;\n              (*pLVar5->_vptr_Lock_impl[2])(pLVar5);\n              pTVar2 = find_runnable_or_wait(this_00,iVar11);\n              if (pTVar2 == (Task *)0x0) {\n                pLVar5 = (this_00->lock_).lock_;\n                (*pLVar5->_vptr_Lock_impl[3])(pLVar5);\n                return false;\n              }\n              p_Var31 = *(_func_int_varargs **)(pcVar33 + 0x1f0ee8);\n              if (pTVar2->_vptr_Task[3] != p_Var31) {\n                (*pTVar2->_vptr_Task[3])(pTVar2,auStack_120);\n              }\n              pLVar5 = (this_00->lock_).lock_;\n              plStack_fc = &TStack_168.start_time_.wall;\n              pcStack_100 = *(code **)(pcVar33 + 0x1f0eec);\n              p_Stack_f4 = *(_func_int_varargs **)(pcVar33 + 0x1f0ef0);\n              piVar24 = *(int **)(pcVar33 + 0x1edd48);\n              p_Var30 = *(_func_int_varargs **)(pcVar33 + 0x1f0ef4);\n              p_Var35 = pLVar5->_vptr_Lock_impl[3];\n              this_00->running_ = this_00->running_ + 1;\n              (*p_Var35)(pLVar5);\n              iStack_f8 = *(int *)(pcVar33 + 0x1edcb0) + 0x39f0;\n              iStack_ec = *(int *)(pcVar33 + 0x1edcb0) + 0x3a08;\n              iVar22 = *(int *)(pcVar33 + 0x1ee464);\n              goto LAB_002d3eac;\n            }\n            piVar24 = (int *)puVar16[8];\n          }\n          else {\n            (*pcVar34)((int *)puVar16[9],iVar11);\n            piVar24 = (int *)puVar16[8];\n          }\n          (**(code **)(*piVar24 + 0x10))(piVar24);\n                    /* WARNING: Could not recover jumptable at 0x002d3b4c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar9 = (**(code **)(*(int *)*puVar16 + 0xc))((int *)*puVar16);\n          return (bool)uVar9;\n        }\n        pcVar27[8] = '\0';\n        pcVar27[9] = '\0';\n        pcVar27[10] = '\0';\n        pcVar27[0xb] = '\0';\n        do {\n          pTVar2 = *(Task **)(pcVar27 + 0xc);\n          if (pTVar2 == (Task *)0x0) break;\n          pTVar4 = pTVar2->list_next_;\n          if (pTVar2 == *(Task **)(pcVar27 + 0x10)) {\n            if (pTVar4 != (Task *)0x0) goto LAB_002d3a94;\n            pcVar27[0xc] = '\0';\n            pcVar27[0xd] = '\0';\n            pcVar27[0xe] = '\0';\n            pcVar27[0xf] = '\0';\n            pcVar27[0x10] = '\0';\n            pcVar27[0x11] = '\0';\n            pcVar27[0x12] = '\0';\n            pcVar27[0x13] = '\0';\n          }\n          else {\n            *(Task **)(pcVar27 + 0xc) = pTVar4;\n            if (pTVar4 == (Task *)0x0) goto LAB_002d3a5c;\n            pTVar2->list_next_ = (Task *)0x0;\n          }\n          pWVar15->waiting_ = pWVar15->waiting_ + -1;\n          bVar8 = return_or_queue(pWVar15,pTVar2,false,apTStack_48);\n        } while (CONCAT31(extraout_var,bVar8) == 0);\nLAB_002d398c:\n        iVar11 = *piVar24;\n        piVar28 = piVar28 + 1;\n        if (piVar28 == piVar24 + iVar11 + 1) {\n          return (bool)(char)apTStack_48[0];\n        }\n      }\n      iVar7 = *(int *)(pcVar27 + 4) + -1;\n      if (*(int *)(pcVar27 + 4) < 1) goto LAB_002d3a78;\n      pcVar27[8] = '\0';\n      pcVar27[9] = '\0';\n      pcVar27[10] = '\0';\n      pcVar27[0xb] = '\0';\n      *(int *)(pcVar27 + 4) = iVar7;\n      if ((iVar7 == 0) && (pTVar2 = *(Task **)(pcVar27 + 0xc), pTVar2 != (Task *)0x0)) {\n        pTVar4 = pTVar2->list_next_;\n        if (*(Task **)(pcVar27 + 0x10) == pTVar2) goto LAB_002d3a40;\n        while (*(Task **)(pcVar27 + 0xc) = pTVar4, pTVar4 != (Task *)0x0) {\n          pTVar2->list_next_ = (Task *)0x0;\n          while( true ) {\n            pWVar15->waiting_ = pWVar15->waiting_ + -1;\n            return_or_queue(pWVar15,pTVar2,true,apTStack_48);\n            pTVar2 = *(Task **)(pcVar27 + 0xc);\n            if (pTVar2 == (Task *)0x0) goto LAB_002d398c;\n            pTVar4 = pTVar2->list_next_;\n            if (*(Task **)(pcVar27 + 0x10) != pTVar2) break;\nLAB_002d3a40:\n            if (pTVar4 != (Task *)0x0) goto LAB_002d3a94;\n            pcVar27[0xc] = '\0';\n            pcVar27[0xd] = '\0';\n            pcVar27[0xe] = '\0';\n            pcVar27[0xf] = '\0';\n            pcVar27[0x10] = '\0';\n            pcVar27[0x11] = '\0';\n            pcVar27[0x12] = '\0';\n            pcVar27[0x13] = '\0';\n          }\n        }\nLAB_002d3a5c:\n        uVar29 = 0x5a;\n        do {\n          (**(code **)(puVar32 + 0x1ee1ac))\n                    (*(int *)(puVar32 + 0x1ee098) + 0x39bc,uVar29,\n                     *(int *)(puVar32 + 0x1ee098) + 0x3aa0);\nLAB_002d3a78:\n          (**(code **)(puVar32 + 0x1ee1ac))\n                    (*(int *)(puVar32 + 0x1ed9f8) + -0x7f8,0xa1,\n                     *(int *)(puVar32 + 0x1ee098) + 0x3a6c);\nLAB_002d3a94:\n          uVar29 = 0x53;\n        } while( true );\n      }\n      piVar28 = piVar28 + 1;\n      uVar9 = SUB41(apTStack_48[0],0);\n    } while (piVar28 != piVar24 + iVar11 + 1);\n  }" else (compound_statement "{\n    uVar29 = *(undefined4 *)(puVar32 + 0x1f12c4);\n    pWStack_40 = this;\n    do {\n      while (pcVar27 = (char *)*piVar28, *pcVar27 == '\0') {\n        if (iVar22 != *(int *)(pcVar27 + 8)) {\n          iVar11 = 0x84;\n          pcVar33 = *(code **)(puVar32 + 0x1ee1ac);\n          puVar16 = (undefined4 *)(*(int *)(puVar32 + 0x1ed9f8) + -0x7f8);\n          (*pcVar33)(puVar16,0x84,*(int *)(puVar32 + 0x1ee098) + 0x3a5c);\n          (**(code **)(*(int *)*puVar16 + 8))((int *)*puVar16);\n          pcVar34 = *(code **)(*(int *)puVar16[9] + 8);\n          if (pcVar34 == *(code **)(pcVar33 + 0x1f1098)) {\n            if (iVar11 < 1) {\n              pcVar27 = &DAT_0000006e;\n              puVar17 = (undefined4 *)(*(int *)(pcVar33 + 0x1ede68) + 0x39bc);\n              (**(code **)(pcVar33 + 0x1edf7c))(puVar17,0x6e,*(int *)(pcVar33 + 0x1ede68) + 0x3aec);\n              (**(code **)(*(int *)*puVar16 + 0xc))((int *)*puVar16);\n              pcVar33 = *(code **)(pcVar33 + 0x1ed814);\n              (*pcVar33)();\n              (**(code **)(*(int *)*puVar17 + 8))((int *)*puVar17);\n              if (*pcVar27 != '\0') {\n                piVar24 = (int *)*puVar17;\n                iVar11 = *piVar24;\n                pcVar27[8] = '\0';\n                pcVar27[9] = '\0';\n                pcVar27[10] = '\0';\n                pcVar27[0xb] = '\0';\n                *(int *)(pcVar27 + 4) = *(int *)(pcVar27 + 4) + 1;\n                    /* WARNING: Could not recover jumptable at 0x002d3c1c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                uVar9 = (**(code **)(iVar11 + 0xc))(piVar24);\n                return (bool)uVar9;\n              }\n              iVar11 = 0x8e;\n              pWVar18 = (Workqueue *)(*(int *)(pcVar33 + 0x1ed6d4) + -0x7f8);\n              (**(code **)(pcVar33 + 0x1ede88))(pWVar18,0x8e,*(int *)(pcVar33 + 0x1edd74) + 0x3a50);\n              (**(code **)(*(int *)*puVar17 + 0xc))((int *)*puVar17);\n              pcVar33 = *(code **)(pcVar33 + 0x1ed720);\n              this_00 = pWVar18;\n              (*pcVar33)();\n              pLVar5 = (this_00->lock_).lock_;\n              auStack_120[0] = 0;\n              pWStack_d8 = pWVar18;\n              puStack_d4 = puVar17;\n              uStack_d0 = uVar29;\n              piStack_cc = piVar24;\n              iStack_c8 = iVar22;\n              pWStack_c4 = pWVar15;\n              ppTStack_c0 = apTStack_48;\n              (*pLVar5->_vptr_Lock_impl[2])(pLVar5);\n              pTVar2 = find_runnable_or_wait(this_00,iVar11);\n              if (pTVar2 == (Task *)0x0) {\n                pLVar5 = (this_00->lock_).lock_;\n                (*pLVar5->_vptr_Lock_impl[3])(pLVar5);\n                return false;\n              }\n              p_Var31 = *(_func_int_varargs **)(pcVar33 + 0x1f0ee8);\n              if (pTVar2->_vptr_Task[3] != p_Var31) {\n                (*pTVar2->_vptr_Task[3])(pTVar2,auStack_120);\n              }\n              pLVar5 = (this_00->lock_).lock_;\n              plStack_fc = &TStack_168.start_time_.wall;\n              pcStack_100 = *(code **)(pcVar33 + 0x1f0eec);\n              p_Stack_f4 = *(_func_int_varargs **)(pcVar33 + 0x1f0ef0);\n              piVar24 = *(int **)(pcVar33 + 0x1edd48);\n              p_Var30 = *(_func_int_varargs **)(pcVar33 + 0x1f0ef4);\n              p_Var35 = pLVar5->_vptr_Lock_impl[3];\n              this_00->running_ = this_00->running_ + 1;\n              (*p_Var35)(pLVar5);\n              iStack_f8 = *(int *)(pcVar33 + 0x1edcb0) + 0x39f0;\n              iStack_ec = *(int *)(pcVar33 + 0x1edcb0) + 0x3a08;\n              iVar22 = *(int *)(pcVar33 + 0x1ee464);\n              goto LAB_002d3eac;\n            }\n            piVar24 = (int *)puVar16[8];\n          }\n          else {\n            (*pcVar34)((int *)puVar16[9],iVar11);\n            piVar24 = (int *)puVar16[8];\n          }\n          (**(code **)(*piVar24 + 0x10))(piVar24);\n                    /* WARNING: Could not recover jumptable at 0x002d3b4c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar9 = (**(code **)(*(int *)*puVar16 + 0xc))((int *)*puVar16);\n          return (bool)uVar9;\n        }\n        pcVar27[8] = '\0';\n        pcVar27[9] = '\0';\n        pcVar27[10] = '\0';\n        pcVar27[0xb] = '\0';\n        do {\n          pTVar2 = *(Task **)(pcVar27 + 0xc);\n          if (pTVar2 == (Task *)0x0) break;\n          pTVar4 = pTVar2->list_next_;\n          if (pTVar2 == *(Task **)(pcVar27 + 0x10)) {\n            if (pTVar4 != (Task *)0x0) goto LAB_002d3a94;\n            pcVar27[0xc] = '\0';\n            pcVar27[0xd] = '\0';\n            pcVar27[0xe] = '\0';\n            pcVar27[0xf] = '\0';\n            pcVar27[0x10] = '\0';\n            pcVar27[0x11] = '\0';\n            pcVar27[0x12] = '\0';\n            pcVar27[0x13] = '\0';\n          }\n          else {\n            *(Task **)(pcVar27 + 0xc) = pTVar4;\n            if (pTVar4 == (Task *)0x0) goto LAB_002d3a5c;\n            pTVar2->list_next_ = (Task *)0x0;\n          }\n          pWVar15->waiting_ = pWVar15->waiting_ + -1;\n          bVar8 = return_or_queue(pWVar15,pTVar2,false,apTStack_48);\n        } while (CONCAT31(extraout_var,bVar8) == 0);\nLAB_002d398c:\n        iVar11 = *piVar24;\n        piVar28 = piVar28 + 1;\n        if (piVar28 == piVar24 + iVar11 + 1) {\n          return (bool)(char)apTStack_48[0];\n        }\n      }\n      iVar7 = *(int *)(pcVar27 + 4) + -1;\n      if (*(int *)(pcVar27 + 4) < 1) goto LAB_002d3a78;\n      pcVar27[8] = '\0';\n      pcVar27[9] = '\0';\n      pcVar27[10] = '\0';\n      pcVar27[0xb] = '\0';\n      *(int *)(pcVar27 + 4) = iVar7;\n      if ((iVar7 == 0) && (pTVar2 = *(Task **)(pcVar27 + 0xc), pTVar2 != (Task *)0x0)) {\n        pTVar4 = pTVar2->list_next_;\n        if (*(Task **)(pcVar27 + 0x10) == pTVar2) goto LAB_002d3a40;\n        while (*(Task **)(pcVar27 + 0xc) = pTVar4, pTVar4 != (Task *)0x0) {\n          pTVar2->list_next_ = (Task *)0x0;\n          while( true ) {\n            pWVar15->waiting_ = pWVar15->waiting_ + -1;\n            return_or_queue(pWVar15,pTVar2,true,apTStack_48);\n            pTVar2 = *(Task **)(pcVar27 + 0xc);\n            if (pTVar2 == (Task *)0x0) goto LAB_002d398c;\n            pTVar4 = pTVar2->list_next_;\n            if (*(Task **)(pcVar27 + 0x10) != pTVar2) break;\nLAB_002d3a40:\n            if (pTVar4 != (Task *)0x0) goto LAB_002d3a94;\n            pcVar27[0xc] = '\0';\n            pcVar27[0xd] = '\0';\n            pcVar27[0xe] = '\0';\n            pcVar27[0xf] = '\0';\n            pcVar27[0x10] = '\0';\n            pcVar27[0x11] = '\0';\n            pcVar27[0x12] = '\0';\n            pcVar27[0x13] = '\0';\n          }\n        }\nLAB_002d3a5c:\n        uVar29 = 0x5a;\n        do {\n          (**(code **)(puVar32 + 0x1ee1ac))\n                    (*(int *)(puVar32 + 0x1ee098) + 0x39bc,uVar29,\n                     *(int *)(puVar32 + 0x1ee098) + 0x3aa0);\nLAB_002d3a78:\n          (**(code **)(puVar32 + 0x1ee1ac))\n                    (*(int *)(puVar32 + 0x1ed9f8) + -0x7f8,0xa1,\n                     *(int *)(puVar32 + 0x1ee098) + 0x3a6c);\nLAB_002d3a94:\n          uVar29 = 0x53;\n        } while( true );\n      }\n      piVar28 = piVar28 + 1;\n      uVar9 = SUB41(apTStack_48[0],0);\n    } while (piVar28 != piVar24 + iVar11 + 1);\n  }" { (expression_statement "uVar29 = *(undefined4 *)(puVar32 + 0x1f12c4);" (assignment_expression "uVar29 = *(undefined4 *)(puVar32 + 0x1f12c4)" identifier = (pointer_expression "*(undefined4 *)(puVar32 + 0x1f12c4)" * (cast_expression "(undefined4 *)(puVar32 + 0x1f12c4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x1f12c4)" ( (binary_expression "puVar32 + 0x1f12c4" identifier + number_literal) ))))) ;) (expression_statement "pWStack_40 = this;" (assignment_expression "pWStack_40 = this" identifier = identifier) ;) (do_statement "do {\n      while (pcVar27 = (char *)*piVar28, *pcVar27 == '\0') {\n        if (iVar22 != *(int *)(pcVar27 + 8)) {\n          iVar11 = 0x84;\n          pcVar33 = *(code **)(puVar32 + 0x1ee1ac);\n          puVar16 = (undefined4 *)(*(int *)(puVar32 + 0x1ed9f8) + -0x7f8);\n          (*pcVar33)(puVar16,0x84,*(int *)(puVar32 + 0x1ee098) + 0x3a5c);\n          (**(code **)(*(int *)*puVar16 + 8))((int *)*puVar16);\n          pcVar34 = *(code **)(*(int *)puVar16[9] + 8);\n          if (pcVar34 == *(code **)(pcVar33 + 0x1f1098)) {\n            if (iVar11 < 1) {\n              pcVar27 = &DAT_0000006e;\n              puVar17 = (undefined4 *)(*(int *)(pcVar33 + 0x1ede68) + 0x39bc);\n              (**(code **)(pcVar33 + 0x1edf7c))(puVar17,0x6e,*(int *)(pcVar33 + 0x1ede68) + 0x3aec);\n              (**(code **)(*(int *)*puVar16 + 0xc))((int *)*puVar16);\n              pcVar33 = *(code **)(pcVar33 + 0x1ed814);\n              (*pcVar33)();\n              (**(code **)(*(int *)*puVar17 + 8))((int *)*puVar17);\n              if (*pcVar27 != '\0') {\n                piVar24 = (int *)*puVar17;\n                iVar11 = *piVar24;\n                pcVar27[8] = '\0';\n                pcVar27[9] = '\0';\n                pcVar27[10] = '\0';\n                pcVar27[0xb] = '\0';\n                *(int *)(pcVar27 + 4) = *(int *)(pcVar27 + 4) + 1;\n                    /* WARNING: Could not recover jumptable at 0x002d3c1c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                uVar9 = (**(code **)(iVar11 + 0xc))(piVar24);\n                return (bool)uVar9;\n              }\n              iVar11 = 0x8e;\n              pWVar18 = (Workqueue *)(*(int *)(pcVar33 + 0x1ed6d4) + -0x7f8);\n              (**(code **)(pcVar33 + 0x1ede88))(pWVar18,0x8e,*(int *)(pcVar33 + 0x1edd74) + 0x3a50);\n              (**(code **)(*(int *)*puVar17 + 0xc))((int *)*puVar17);\n              pcVar33 = *(code **)(pcVar33 + 0x1ed720);\n              this_00 = pWVar18;\n              (*pcVar33)();\n              pLVar5 = (this_00->lock_).lock_;\n              auStack_120[0] = 0;\n              pWStack_d8 = pWVar18;\n              puStack_d4 = puVar17;\n              uStack_d0 = uVar29;\n              piStack_cc = piVar24;\n              iStack_c8 = iVar22;\n              pWStack_c4 = pWVar15;\n              ppTStack_c0 = apTStack_48;\n              (*pLVar5->_vptr_Lock_impl[2])(pLVar5);\n              pTVar2 = find_runnable_or_wait(this_00,iVar11);\n              if (pTVar2 == (Task *)0x0) {\n                pLVar5 = (this_00->lock_).lock_;\n                (*pLVar5->_vptr_Lock_impl[3])(pLVar5);\n                return false;\n              }\n              p_Var31 = *(_func_int_varargs **)(pcVar33 + 0x1f0ee8);\n              if (pTVar2->_vptr_Task[3] != p_Var31) {\n                (*pTVar2->_vptr_Task[3])(pTVar2,auStack_120);\n              }\n              pLVar5 = (this_00->lock_).lock_;\n              plStack_fc = &TStack_168.start_time_.wall;\n              pcStack_100 = *(code **)(pcVar33 + 0x1f0eec);\n              p_Stack_f4 = *(_func_int_varargs **)(pcVar33 + 0x1f0ef0);\n              piVar24 = *(int **)(pcVar33 + 0x1edd48);\n              p_Var30 = *(_func_int_varargs **)(pcVar33 + 0x1f0ef4);\n              p_Var35 = pLVar5->_vptr_Lock_impl[3];\n              this_00->running_ = this_00->running_ + 1;\n              (*p_Var35)(pLVar5);\n              iStack_f8 = *(int *)(pcVar33 + 0x1edcb0) + 0x39f0;\n              iStack_ec = *(int *)(pcVar33 + 0x1edcb0) + 0x3a08;\n              iVar22 = *(int *)(pcVar33 + 0x1ee464);\n              goto LAB_002d3eac;\n            }\n            piVar24 = (int *)puVar16[8];\n          }\n          else {\n            (*pcVar34)((int *)puVar16[9],iVar11);\n            piVar24 = (int *)puVar16[8];\n          }\n          (**(code **)(*piVar24 + 0x10))(piVar24);\n                    /* WARNING: Could not recover jumptable at 0x002d3b4c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar9 = (**(code **)(*(int *)*puVar16 + 0xc))((int *)*puVar16);\n          return (bool)uVar9;\n        }\n        pcVar27[8] = '\0';\n        pcVar27[9] = '\0';\n        pcVar27[10] = '\0';\n        pcVar27[0xb] = '\0';\n        do {\n          pTVar2 = *(Task **)(pcVar27 + 0xc);\n          if (pTVar2 == (Task *)0x0) break;\n          pTVar4 = pTVar2->list_next_;\n          if (pTVar2 == *(Task **)(pcVar27 + 0x10)) {\n            if (pTVar4 != (Task *)0x0) goto LAB_002d3a94;\n            pcVar27[0xc] = '\0';\n            pcVar27[0xd] = '\0';\n            pcVar27[0xe] = '\0';\n            pcVar27[0xf] = '\0';\n            pcVar27[0x10] = '\0';\n            pcVar27[0x11] = '\0';\n            pcVar27[0x12] = '\0';\n            pcVar27[0x13] = '\0';\n          }\n          else {\n            *(Task **)(pcVar27 + 0xc) = pTVar4;\n            if (pTVar4 == (Task *)0x0) goto LAB_002d3a5c;\n            pTVar2->list_next_ = (Task *)0x0;\n          }\n          pWVar15->waiting_ = pWVar15->waiting_ + -1;\n          bVar8 = return_or_queue(pWVar15,pTVar2,false,apTStack_48);\n        } while (CONCAT31(extraout_var,bVar8) == 0);\nLAB_002d398c:\n        iVar11 = *piVar24;\n        piVar28 = piVar28 + 1;\n        if (piVar28 == piVar24 + iVar11 + 1) {\n          return (bool)(char)apTStack_48[0];\n        }\n      }\n      iVar7 = *(int *)(pcVar27 + 4) + -1;\n      if (*(int *)(pcVar27 + 4) < 1) goto LAB_002d3a78;\n      pcVar27[8] = '\0';\n      pcVar27[9] = '\0';\n      pcVar27[10] = '\0';\n      pcVar27[0xb] = '\0';\n      *(int *)(pcVar27 + 4) = iVar7;\n      if ((iVar7 == 0) && (pTVar2 = *(Task **)(pcVar27 + 0xc), pTVar2 != (Task *)0x0)) {\n        pTVar4 = pTVar2->list_next_;\n        if (*(Task **)(pcVar27 + 0x10) == pTVar2) goto LAB_002d3a40;\n        while (*(Task **)(pcVar27 + 0xc) = pTVar4, pTVar4 != (Task *)0x0) {\n          pTVar2->list_next_ = (Task *)0x0;\n          while( true ) {\n            pWVar15->waiting_ = pWVar15->waiting_ + -1;\n            return_or_queue(pWVar15,pTVar2,true,apTStack_48);\n            pTVar2 = *(Task **)(pcVar27 + 0xc);\n            if (pTVar2 == (Task *)0x0) goto LAB_002d398c;\n            pTVar4 = pTVar2->list_next_;\n            if (*(Task **)(pcVar27 + 0x10) != pTVar2) break;\nLAB_002d3a40:\n            if (pTVar4 != (Task *)0x0) goto LAB_002d3a94;\n            pcVar27[0xc] = '\0';\n            pcVar27[0xd] = '\0';\n            pcVar27[0xe] = '\0';\n            pcVar27[0xf] = '\0';\n            pcVar27[0x10] = '\0';\n            pcVar27[0x11] = '\0';\n            pcVar27[0x12] = '\0';\n            pcVar27[0x13] = '\0';\n          }\n        }\nLAB_002d3a5c:\n        uVar29 = 0x5a;\n        do {\n          (**(code **)(puVar32 + 0x1ee1ac))\n                    (*(int *)(puVar32 + 0x1ee098) + 0x39bc,uVar29,\n                     *(int *)(puVar32 + 0x1ee098) + 0x3aa0);\nLAB_002d3a78:\n          (**(code **)(puVar32 + 0x1ee1ac))\n                    (*(int *)(puVar32 + 0x1ed9f8) + -0x7f8,0xa1,\n                     *(int *)(puVar32 + 0x1ee098) + 0x3a6c);\nLAB_002d3a94:\n          uVar29 = 0x53;\n        } while( true );\n      }\n      piVar28 = piVar28 + 1;\n      uVar9 = SUB41(apTStack_48[0],0);\n    } while (piVar28 != piVar24 + iVar11 + 1);" do (compound_statement "{\n      while (pcVar27 = (char *)*piVar28, *pcVar27 == '\0') {\n        if (iVar22 != *(int *)(pcVar27 + 8)) {\n          iVar11 = 0x84;\n          pcVar33 = *(code **)(puVar32 + 0x1ee1ac);\n          puVar16 = (undefined4 *)(*(int *)(puVar32 + 0x1ed9f8) + -0x7f8);\n          (*pcVar33)(puVar16,0x84,*(int *)(puVar32 + 0x1ee098) + 0x3a5c);\n          (**(code **)(*(int *)*puVar16 + 8))((int *)*puVar16);\n          pcVar34 = *(code **)(*(int *)puVar16[9] + 8);\n          if (pcVar34 == *(code **)(pcVar33 + 0x1f1098)) {\n            if (iVar11 < 1) {\n              pcVar27 = &DAT_0000006e;\n              puVar17 = (undefined4 *)(*(int *)(pcVar33 + 0x1ede68) + 0x39bc);\n              (**(code **)(pcVar33 + 0x1edf7c))(puVar17,0x6e,*(int *)(pcVar33 + 0x1ede68) + 0x3aec);\n              (**(code **)(*(int *)*puVar16 + 0xc))((int *)*puVar16);\n              pcVar33 = *(code **)(pcVar33 + 0x1ed814);\n              (*pcVar33)();\n              (**(code **)(*(int *)*puVar17 + 8))((int *)*puVar17);\n              if (*pcVar27 != '\0') {\n                piVar24 = (int *)*puVar17;\n                iVar11 = *piVar24;\n                pcVar27[8] = '\0';\n                pcVar27[9] = '\0';\n                pcVar27[10] = '\0';\n                pcVar27[0xb] = '\0';\n                *(int *)(pcVar27 + 4) = *(int *)(pcVar27 + 4) + 1;\n                    /* WARNING: Could not recover jumptable at 0x002d3c1c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                uVar9 = (**(code **)(iVar11 + 0xc))(piVar24);\n                return (bool)uVar9;\n              }\n              iVar11 = 0x8e;\n              pWVar18 = (Workqueue *)(*(int *)(pcVar33 + 0x1ed6d4) + -0x7f8);\n              (**(code **)(pcVar33 + 0x1ede88))(pWVar18,0x8e,*(int *)(pcVar33 + 0x1edd74) + 0x3a50);\n              (**(code **)(*(int *)*puVar17 + 0xc))((int *)*puVar17);\n              pcVar33 = *(code **)(pcVar33 + 0x1ed720);\n              this_00 = pWVar18;\n              (*pcVar33)();\n              pLVar5 = (this_00->lock_).lock_;\n              auStack_120[0] = 0;\n              pWStack_d8 = pWVar18;\n              puStack_d4 = puVar17;\n              uStack_d0 = uVar29;\n              piStack_cc = piVar24;\n              iStack_c8 = iVar22;\n              pWStack_c4 = pWVar15;\n              ppTStack_c0 = apTStack_48;\n              (*pLVar5->_vptr_Lock_impl[2])(pLVar5);\n              pTVar2 = find_runnable_or_wait(this_00,iVar11);\n              if (pTVar2 == (Task *)0x0) {\n                pLVar5 = (this_00->lock_).lock_;\n                (*pLVar5->_vptr_Lock_impl[3])(pLVar5);\n                return false;\n              }\n              p_Var31 = *(_func_int_varargs **)(pcVar33 + 0x1f0ee8);\n              if (pTVar2->_vptr_Task[3] != p_Var31) {\n                (*pTVar2->_vptr_Task[3])(pTVar2,auStack_120);\n              }\n              pLVar5 = (this_00->lock_).lock_;\n              plStack_fc = &TStack_168.start_time_.wall;\n              pcStack_100 = *(code **)(pcVar33 + 0x1f0eec);\n              p_Stack_f4 = *(_func_int_varargs **)(pcVar33 + 0x1f0ef0);\n              piVar24 = *(int **)(pcVar33 + 0x1edd48);\n              p_Var30 = *(_func_int_varargs **)(pcVar33 + 0x1f0ef4);\n              p_Var35 = pLVar5->_vptr_Lock_impl[3];\n              this_00->running_ = this_00->running_ + 1;\n              (*p_Var35)(pLVar5);\n              iStack_f8 = *(int *)(pcVar33 + 0x1edcb0) + 0x39f0;\n              iStack_ec = *(int *)(pcVar33 + 0x1edcb0) + 0x3a08;\n              iVar22 = *(int *)(pcVar33 + 0x1ee464);\n              goto LAB_002d3eac;\n            }\n            piVar24 = (int *)puVar16[8];\n          }\n          else {\n            (*pcVar34)((int *)puVar16[9],iVar11);\n            piVar24 = (int *)puVar16[8];\n          }\n          (**(code **)(*piVar24 + 0x10))(piVar24);\n                    /* WARNING: Could not recover jumptable at 0x002d3b4c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar9 = (**(code **)(*(int *)*puVar16 + 0xc))((int *)*puVar16);\n          return (bool)uVar9;\n        }\n        pcVar27[8] = '\0';\n        pcVar27[9] = '\0';\n        pcVar27[10] = '\0';\n        pcVar27[0xb] = '\0';\n        do {\n          pTVar2 = *(Task **)(pcVar27 + 0xc);\n          if (pTVar2 == (Task *)0x0) break;\n          pTVar4 = pTVar2->list_next_;\n          if (pTVar2 == *(Task **)(pcVar27 + 0x10)) {\n            if (pTVar4 != (Task *)0x0) goto LAB_002d3a94;\n            pcVar27[0xc] = '\0';\n            pcVar27[0xd] = '\0';\n            pcVar27[0xe] = '\0';\n            pcVar27[0xf] = '\0';\n            pcVar27[0x10] = '\0';\n            pcVar27[0x11] = '\0';\n            pcVar27[0x12] = '\0';\n            pcVar27[0x13] = '\0';\n          }\n          else {\n            *(Task **)(pcVar27 + 0xc) = pTVar4;\n            if (pTVar4 == (Task *)0x0) goto LAB_002d3a5c;\n            pTVar2->list_next_ = (Task *)0x0;\n          }\n          pWVar15->waiting_ = pWVar15->waiting_ + -1;\n          bVar8 = return_or_queue(pWVar15,pTVar2,false,apTStack_48);\n        } while (CONCAT31(extraout_var,bVar8) == 0);\nLAB_002d398c:\n        iVar11 = *piVar24;\n        piVar28 = piVar28 + 1;\n        if (piVar28 == piVar24 + iVar11 + 1) {\n          return (bool)(char)apTStack_48[0];\n        }\n      }\n      iVar7 = *(int *)(pcVar27 + 4) + -1;\n      if (*(int *)(pcVar27 + 4) < 1) goto LAB_002d3a78;\n      pcVar27[8] = '\0';\n      pcVar27[9] = '\0';\n      pcVar27[10] = '\0';\n      pcVar27[0xb] = '\0';\n      *(int *)(pcVar27 + 4) = iVar7;\n      if ((iVar7 == 0) && (pTVar2 = *(Task **)(pcVar27 + 0xc), pTVar2 != (Task *)0x0)) {\n        pTVar4 = pTVar2->list_next_;\n        if (*(Task **)(pcVar27 + 0x10) == pTVar2) goto LAB_002d3a40;\n        while (*(Task **)(pcVar27 + 0xc) = pTVar4, pTVar4 != (Task *)0x0) {\n          pTVar2->list_next_ = (Task *)0x0;\n          while( true ) {\n            pWVar15->waiting_ = pWVar15->waiting_ + -1;\n            return_or_queue(pWVar15,pTVar2,true,apTStack_48);\n            pTVar2 = *(Task **)(pcVar27 + 0xc);\n            if (pTVar2 == (Task *)0x0) goto LAB_002d398c;\n            pTVar4 = pTVar2->list_next_;\n            if (*(Task **)(pcVar27 + 0x10) != pTVar2) break;\nLAB_002d3a40:\n            if (pTVar4 != (Task *)0x0) goto LAB_002d3a94;\n            pcVar27[0xc] = '\0';\n            pcVar27[0xd] = '\0';\n            pcVar27[0xe] = '\0';\n            pcVar27[0xf] = '\0';\n            pcVar27[0x10] = '\0';\n            pcVar27[0x11] = '\0';\n            pcVar27[0x12] = '\0';\n            pcVar27[0x13] = '\0';\n          }\n        }\nLAB_002d3a5c:\n        uVar29 = 0x5a;\n        do {\n          (**(code **)(puVar32 + 0x1ee1ac))\n                    (*(int *)(puVar32 + 0x1ee098) + 0x39bc,uVar29,\n                     *(int *)(puVar32 + 0x1ee098) + 0x3aa0);\nLAB_002d3a78:\n          (**(code **)(puVar32 + 0x1ee1ac))\n                    (*(int *)(puVar32 + 0x1ed9f8) + -0x7f8,0xa1,\n                     *(int *)(puVar32 + 0x1ee098) + 0x3a6c);\nLAB_002d3a94:\n          uVar29 = 0x53;\n        } while( true );\n      }\n      piVar28 = piVar28 + 1;\n      uVar9 = SUB41(apTStack_48[0],0);\n    }" { (while_statement "while (pcVar27 = (char *)*piVar28, *pcVar27 == '\0') {\n        if (iVar22 != *(int *)(pcVar27 + 8)) {\n          iVar11 = 0x84;\n          pcVar33 = *(code **)(puVar32 + 0x1ee1ac);\n          puVar16 = (undefined4 *)(*(int *)(puVar32 + 0x1ed9f8) + -0x7f8);\n          (*pcVar33)(puVar16,0x84,*(int *)(puVar32 + 0x1ee098) + 0x3a5c);\n          (**(code **)(*(int *)*puVar16 + 8))((int *)*puVar16);\n          pcVar34 = *(code **)(*(int *)puVar16[9] + 8);\n          if (pcVar34 == *(code **)(pcVar33 + 0x1f1098)) {\n            if (iVar11 < 1) {\n              pcVar27 = &DAT_0000006e;\n              puVar17 = (undefined4 *)(*(int *)(pcVar33 + 0x1ede68) + 0x39bc);\n              (**(code **)(pcVar33 + 0x1edf7c))(puVar17,0x6e,*(int *)(pcVar33 + 0x1ede68) + 0x3aec);\n              (**(code **)(*(int *)*puVar16 + 0xc))((int *)*puVar16);\n              pcVar33 = *(code **)(pcVar33 + 0x1ed814);\n              (*pcVar33)();\n              (**(code **)(*(int *)*puVar17 + 8))((int *)*puVar17);\n              if (*pcVar27 != '\0') {\n                piVar24 = (int *)*puVar17;\n                iVar11 = *piVar24;\n                pcVar27[8] = '\0';\n                pcVar27[9] = '\0';\n                pcVar27[10] = '\0';\n                pcVar27[0xb] = '\0';\n                *(int *)(pcVar27 + 4) = *(int *)(pcVar27 + 4) + 1;\n                    /* WARNING: Could not recover jumptable at 0x002d3c1c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                uVar9 = (**(code **)(iVar11 + 0xc))(piVar24);\n                return (bool)uVar9;\n              }\n              iVar11 = 0x8e;\n              pWVar18 = (Workqueue *)(*(int *)(pcVar33 + 0x1ed6d4) + -0x7f8);\n              (**(code **)(pcVar33 + 0x1ede88))(pWVar18,0x8e,*(int *)(pcVar33 + 0x1edd74) + 0x3a50);\n              (**(code **)(*(int *)*puVar17 + 0xc))((int *)*puVar17);\n              pcVar33 = *(code **)(pcVar33 + 0x1ed720);\n              this_00 = pWVar18;\n              (*pcVar33)();\n              pLVar5 = (this_00->lock_).lock_;\n              auStack_120[0] = 0;\n              pWStack_d8 = pWVar18;\n              puStack_d4 = puVar17;\n              uStack_d0 = uVar29;\n              piStack_cc = piVar24;\n              iStack_c8 = iVar22;\n              pWStack_c4 = pWVar15;\n              ppTStack_c0 = apTStack_48;\n              (*pLVar5->_vptr_Lock_impl[2])(pLVar5);\n              pTVar2 = find_runnable_or_wait(this_00,iVar11);\n              if (pTVar2 == (Task *)0x0) {\n                pLVar5 = (this_00->lock_).lock_;\n                (*pLVar5->_vptr_Lock_impl[3])(pLVar5);\n                return false;\n              }\n              p_Var31 = *(_func_int_varargs **)(pcVar33 + 0x1f0ee8);\n              if (pTVar2->_vptr_Task[3] != p_Var31) {\n                (*pTVar2->_vptr_Task[3])(pTVar2,auStack_120);\n              }\n              pLVar5 = (this_00->lock_).lock_;\n              plStack_fc = &TStack_168.start_time_.wall;\n              pcStack_100 = *(code **)(pcVar33 + 0x1f0eec);\n              p_Stack_f4 = *(_func_int_varargs **)(pcVar33 + 0x1f0ef0);\n              piVar24 = *(int **)(pcVar33 + 0x1edd48);\n              p_Var30 = *(_func_int_varargs **)(pcVar33 + 0x1f0ef4);\n              p_Var35 = pLVar5->_vptr_Lock_impl[3];\n              this_00->running_ = this_00->running_ + 1;\n              (*p_Var35)(pLVar5);\n              iStack_f8 = *(int *)(pcVar33 + 0x1edcb0) + 0x39f0;\n              iStack_ec = *(int *)(pcVar33 + 0x1edcb0) + 0x3a08;\n              iVar22 = *(int *)(pcVar33 + 0x1ee464);\n              goto LAB_002d3eac;\n            }\n            piVar24 = (int *)puVar16[8];\n          }\n          else {\n            (*pcVar34)((int *)puVar16[9],iVar11);\n            piVar24 = (int *)puVar16[8];\n          }\n          (**(code **)(*piVar24 + 0x10))(piVar24);\n                    /* WARNING: Could not recover jumptable at 0x002d3b4c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar9 = (**(code **)(*(int *)*puVar16 + 0xc))((int *)*puVar16);\n          return (bool)uVar9;\n        }\n        pcVar27[8] = '\0';\n        pcVar27[9] = '\0';\n        pcVar27[10] = '\0';\n        pcVar27[0xb] = '\0';\n        do {\n          pTVar2 = *(Task **)(pcVar27 + 0xc);\n          if (pTVar2 == (Task *)0x0) break;\n          pTVar4 = pTVar2->list_next_;\n          if (pTVar2 == *(Task **)(pcVar27 + 0x10)) {\n            if (pTVar4 != (Task *)0x0) goto LAB_002d3a94;\n            pcVar27[0xc] = '\0';\n            pcVar27[0xd] = '\0';\n            pcVar27[0xe] = '\0';\n            pcVar27[0xf] = '\0';\n            pcVar27[0x10] = '\0';\n            pcVar27[0x11] = '\0';\n            pcVar27[0x12] = '\0';\n            pcVar27[0x13] = '\0';\n          }\n          else {\n            *(Task **)(pcVar27 + 0xc) = pTVar4;\n            if (pTVar4 == (Task *)0x0) goto LAB_002d3a5c;\n            pTVar2->list_next_ = (Task *)0x0;\n          }\n          pWVar15->waiting_ = pWVar15->waiting_ + -1;\n          bVar8 = return_or_queue(pWVar15,pTVar2,false,apTStack_48);\n        } while (CONCAT31(extraout_var,bVar8) == 0);\nLAB_002d398c:\n        iVar11 = *piVar24;\n        piVar28 = piVar28 + 1;\n        if (piVar28 == piVar24 + iVar11 + 1) {\n          return (bool)(char)apTStack_48[0];\n        }\n      }" while (parenthesized_expression "(pcVar27 = (char *)*piVar28, *pcVar27 == '\0')" ( (comma_expression "pcVar27 = (char *)*piVar28, *pcVar27 == '\0'" (assignment_expression "pcVar27 = (char *)*piVar28" identifier = (cast_expression "(char *)*piVar28" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar28" * identifier))) , (binary_expression "*pcVar27 == '\0'" (pointer_expression "*pcVar27" * identifier) == (char_literal "'\0'" ' escape_sequence '))) )) (compound_statement "{\n        if (iVar22 != *(int *)(pcVar27 + 8)) {\n          iVar11 = 0x84;\n          pcVar33 = *(code **)(puVar32 + 0x1ee1ac);\n          puVar16 = (undefined4 *)(*(int *)(puVar32 + 0x1ed9f8) + -0x7f8);\n          (*pcVar33)(puVar16,0x84,*(int *)(puVar32 + 0x1ee098) + 0x3a5c);\n          (**(code **)(*(int *)*puVar16 + 8))((int *)*puVar16);\n          pcVar34 = *(code **)(*(int *)puVar16[9] + 8);\n          if (pcVar34 == *(code **)(pcVar33 + 0x1f1098)) {\n            if (iVar11 < 1) {\n              pcVar27 = &DAT_0000006e;\n              puVar17 = (undefined4 *)(*(int *)(pcVar33 + 0x1ede68) + 0x39bc);\n              (**(code **)(pcVar33 + 0x1edf7c))(puVar17,0x6e,*(int *)(pcVar33 + 0x1ede68) + 0x3aec);\n              (**(code **)(*(int *)*puVar16 + 0xc))((int *)*puVar16);\n              pcVar33 = *(code **)(pcVar33 + 0x1ed814);\n              (*pcVar33)();\n              (**(code **)(*(int *)*puVar17 + 8))((int *)*puVar17);\n              if (*pcVar27 != '\0') {\n                piVar24 = (int *)*puVar17;\n                iVar11 = *piVar24;\n                pcVar27[8] = '\0';\n                pcVar27[9] = '\0';\n                pcVar27[10] = '\0';\n                pcVar27[0xb] = '\0';\n                *(int *)(pcVar27 + 4) = *(int *)(pcVar27 + 4) + 1;\n                    /* WARNING: Could not recover jumptable at 0x002d3c1c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                uVar9 = (**(code **)(iVar11 + 0xc))(piVar24);\n                return (bool)uVar9;\n              }\n              iVar11 = 0x8e;\n              pWVar18 = (Workqueue *)(*(int *)(pcVar33 + 0x1ed6d4) + -0x7f8);\n              (**(code **)(pcVar33 + 0x1ede88))(pWVar18,0x8e,*(int *)(pcVar33 + 0x1edd74) + 0x3a50);\n              (**(code **)(*(int *)*puVar17 + 0xc))((int *)*puVar17);\n              pcVar33 = *(code **)(pcVar33 + 0x1ed720);\n              this_00 = pWVar18;\n              (*pcVar33)();\n              pLVar5 = (this_00->lock_).lock_;\n              auStack_120[0] = 0;\n              pWStack_d8 = pWVar18;\n              puStack_d4 = puVar17;\n              uStack_d0 = uVar29;\n              piStack_cc = piVar24;\n              iStack_c8 = iVar22;\n              pWStack_c4 = pWVar15;\n              ppTStack_c0 = apTStack_48;\n              (*pLVar5->_vptr_Lock_impl[2])(pLVar5);\n              pTVar2 = find_runnable_or_wait(this_00,iVar11);\n              if (pTVar2 == (Task *)0x0) {\n                pLVar5 = (this_00->lock_).lock_;\n                (*pLVar5->_vptr_Lock_impl[3])(pLVar5);\n                return false;\n              }\n              p_Var31 = *(_func_int_varargs **)(pcVar33 + 0x1f0ee8);\n              if (pTVar2->_vptr_Task[3] != p_Var31) {\n                (*pTVar2->_vptr_Task[3])(pTVar2,auStack_120);\n              }\n              pLVar5 = (this_00->lock_).lock_;\n              plStack_fc = &TStack_168.start_time_.wall;\n              pcStack_100 = *(code **)(pcVar33 + 0x1f0eec);\n              p_Stack_f4 = *(_func_int_varargs **)(pcVar33 + 0x1f0ef0);\n              piVar24 = *(int **)(pcVar33 + 0x1edd48);\n              p_Var30 = *(_func_int_varargs **)(pcVar33 + 0x1f0ef4);\n              p_Var35 = pLVar5->_vptr_Lock_impl[3];\n              this_00->running_ = this_00->running_ + 1;\n              (*p_Var35)(pLVar5);\n              iStack_f8 = *(int *)(pcVar33 + 0x1edcb0) + 0x39f0;\n              iStack_ec = *(int *)(pcVar33 + 0x1edcb0) + 0x3a08;\n              iVar22 = *(int *)(pcVar33 + 0x1ee464);\n              goto LAB_002d3eac;\n            }\n            piVar24 = (int *)puVar16[8];\n          }\n          else {\n            (*pcVar34)((int *)puVar16[9],iVar11);\n            piVar24 = (int *)puVar16[8];\n          }\n          (**(code **)(*piVar24 + 0x10))(piVar24);\n                    /* WARNING: Could not recover jumptable at 0x002d3b4c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar9 = (**(code **)(*(int *)*puVar16 + 0xc))((int *)*puVar16);\n          return (bool)uVar9;\n        }\n        pcVar27[8] = '\0';\n        pcVar27[9] = '\0';\n        pcVar27[10] = '\0';\n        pcVar27[0xb] = '\0';\n        do {\n          pTVar2 = *(Task **)(pcVar27 + 0xc);\n          if (pTVar2 == (Task *)0x0) break;\n          pTVar4 = pTVar2->list_next_;\n          if (pTVar2 == *(Task **)(pcVar27 + 0x10)) {\n            if (pTVar4 != (Task *)0x0) goto LAB_002d3a94;\n            pcVar27[0xc] = '\0';\n            pcVar27[0xd] = '\0';\n            pcVar27[0xe] = '\0';\n            pcVar27[0xf] = '\0';\n            pcVar27[0x10] = '\0';\n            pcVar27[0x11] = '\0';\n            pcVar27[0x12] = '\0';\n            pcVar27[0x13] = '\0';\n          }\n          else {\n            *(Task **)(pcVar27 + 0xc) = pTVar4;\n            if (pTVar4 == (Task *)0x0) goto LAB_002d3a5c;\n            pTVar2->list_next_ = (Task *)0x0;\n          }\n          pWVar15->waiting_ = pWVar15->waiting_ + -1;\n          bVar8 = return_or_queue(pWVar15,pTVar2,false,apTStack_48);\n        } while (CONCAT31(extraout_var,bVar8) == 0);\nLAB_002d398c:\n        iVar11 = *piVar24;\n        piVar28 = piVar28 + 1;\n        if (piVar28 == piVar24 + iVar11 + 1) {\n          return (bool)(char)apTStack_48[0];\n        }\n      }" { (if_statement "if (iVar22 != *(int *)(pcVar27 + 8)) {\n          iVar11 = 0x84;\n          pcVar33 = *(code **)(puVar32 + 0x1ee1ac);\n          puVar16 = (undefined4 *)(*(int *)(puVar32 + 0x1ed9f8) + -0x7f8);\n          (*pcVar33)(puVar16,0x84,*(int *)(puVar32 + 0x1ee098) + 0x3a5c);\n          (**(code **)(*(int *)*puVar16 + 8))((int *)*puVar16);\n          pcVar34 = *(code **)(*(int *)puVar16[9] + 8);\n          if (pcVar34 == *(code **)(pcVar33 + 0x1f1098)) {\n            if (iVar11 < 1) {\n              pcVar27 = &DAT_0000006e;\n              puVar17 = (undefined4 *)(*(int *)(pcVar33 + 0x1ede68) + 0x39bc);\n              (**(code **)(pcVar33 + 0x1edf7c))(puVar17,0x6e,*(int *)(pcVar33 + 0x1ede68) + 0x3aec);\n              (**(code **)(*(int *)*puVar16 + 0xc))((int *)*puVar16);\n              pcVar33 = *(code **)(pcVar33 + 0x1ed814);\n              (*pcVar33)();\n              (**(code **)(*(int *)*puVar17 + 8))((int *)*puVar17);\n              if (*pcVar27 != '\0') {\n                piVar24 = (int *)*puVar17;\n                iVar11 = *piVar24;\n                pcVar27[8] = '\0';\n                pcVar27[9] = '\0';\n                pcVar27[10] = '\0';\n                pcVar27[0xb] = '\0';\n                *(int *)(pcVar27 + 4) = *(int *)(pcVar27 + 4) + 1;\n                    /* WARNING: Could not recover jumptable at 0x002d3c1c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                uVar9 = (**(code **)(iVar11 + 0xc))(piVar24);\n                return (bool)uVar9;\n              }\n              iVar11 = 0x8e;\n              pWVar18 = (Workqueue *)(*(int *)(pcVar33 + 0x1ed6d4) + -0x7f8);\n              (**(code **)(pcVar33 + 0x1ede88))(pWVar18,0x8e,*(int *)(pcVar33 + 0x1edd74) + 0x3a50);\n              (**(code **)(*(int *)*puVar17 + 0xc))((int *)*puVar17);\n              pcVar33 = *(code **)(pcVar33 + 0x1ed720);\n              this_00 = pWVar18;\n              (*pcVar33)();\n              pLVar5 = (this_00->lock_).lock_;\n              auStack_120[0] = 0;\n              pWStack_d8 = pWVar18;\n              puStack_d4 = puVar17;\n              uStack_d0 = uVar29;\n              piStack_cc = piVar24;\n              iStack_c8 = iVar22;\n              pWStack_c4 = pWVar15;\n              ppTStack_c0 = apTStack_48;\n              (*pLVar5->_vptr_Lock_impl[2])(pLVar5);\n              pTVar2 = find_runnable_or_wait(this_00,iVar11);\n              if (pTVar2 == (Task *)0x0) {\n                pLVar5 = (this_00->lock_).lock_;\n                (*pLVar5->_vptr_Lock_impl[3])(pLVar5);\n                return false;\n              }\n              p_Var31 = *(_func_int_varargs **)(pcVar33 + 0x1f0ee8);\n              if (pTVar2->_vptr_Task[3] != p_Var31) {\n                (*pTVar2->_vptr_Task[3])(pTVar2,auStack_120);\n              }\n              pLVar5 = (this_00->lock_).lock_;\n              plStack_fc = &TStack_168.start_time_.wall;\n              pcStack_100 = *(code **)(pcVar33 + 0x1f0eec);\n              p_Stack_f4 = *(_func_int_varargs **)(pcVar33 + 0x1f0ef0);\n              piVar24 = *(int **)(pcVar33 + 0x1edd48);\n              p_Var30 = *(_func_int_varargs **)(pcVar33 + 0x1f0ef4);\n              p_Var35 = pLVar5->_vptr_Lock_impl[3];\n              this_00->running_ = this_00->running_ + 1;\n              (*p_Var35)(pLVar5);\n              iStack_f8 = *(int *)(pcVar33 + 0x1edcb0) + 0x39f0;\n              iStack_ec = *(int *)(pcVar33 + 0x1edcb0) + 0x3a08;\n              iVar22 = *(int *)(pcVar33 + 0x1ee464);\n              goto LAB_002d3eac;\n            }\n            piVar24 = (int *)puVar16[8];\n          }\n          else {\n            (*pcVar34)((int *)puVar16[9],iVar11);\n            piVar24 = (int *)puVar16[8];\n          }\n          (**(code **)(*piVar24 + 0x10))(piVar24);\n                    /* WARNING: Could not recover jumptable at 0x002d3b4c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar9 = (**(code **)(*(int *)*puVar16 + 0xc))((int *)*puVar16);\n          return (bool)uVar9;\n        }" if (parenthesized_expression "(iVar22 != *(int *)(pcVar27 + 8))" ( (binary_expression "iVar22 != *(int *)(pcVar27 + 8)" identifier != (pointer_expression "*(int *)(pcVar27 + 8)" * (cast_expression "(int *)(pcVar27 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 8)" ( (binary_expression "pcVar27 + 8" identifier + number_literal) ))))) )) (compound_statement "{\n          iVar11 = 0x84;\n          pcVar33 = *(code **)(puVar32 + 0x1ee1ac);\n          puVar16 = (undefined4 *)(*(int *)(puVar32 + 0x1ed9f8) + -0x7f8);\n          (*pcVar33)(puVar16,0x84,*(int *)(puVar32 + 0x1ee098) + 0x3a5c);\n          (**(code **)(*(int *)*puVar16 + 8))((int *)*puVar16);\n          pcVar34 = *(code **)(*(int *)puVar16[9] + 8);\n          if (pcVar34 == *(code **)(pcVar33 + 0x1f1098)) {\n            if (iVar11 < 1) {\n              pcVar27 = &DAT_0000006e;\n              puVar17 = (undefined4 *)(*(int *)(pcVar33 + 0x1ede68) + 0x39bc);\n              (**(code **)(pcVar33 + 0x1edf7c))(puVar17,0x6e,*(int *)(pcVar33 + 0x1ede68) + 0x3aec);\n              (**(code **)(*(int *)*puVar16 + 0xc))((int *)*puVar16);\n              pcVar33 = *(code **)(pcVar33 + 0x1ed814);\n              (*pcVar33)();\n              (**(code **)(*(int *)*puVar17 + 8))((int *)*puVar17);\n              if (*pcVar27 != '\0') {\n                piVar24 = (int *)*puVar17;\n                iVar11 = *piVar24;\n                pcVar27[8] = '\0';\n                pcVar27[9] = '\0';\n                pcVar27[10] = '\0';\n                pcVar27[0xb] = '\0';\n                *(int *)(pcVar27 + 4) = *(int *)(pcVar27 + 4) + 1;\n                    /* WARNING: Could not recover jumptable at 0x002d3c1c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                uVar9 = (**(code **)(iVar11 + 0xc))(piVar24);\n                return (bool)uVar9;\n              }\n              iVar11 = 0x8e;\n              pWVar18 = (Workqueue *)(*(int *)(pcVar33 + 0x1ed6d4) + -0x7f8);\n              (**(code **)(pcVar33 + 0x1ede88))(pWVar18,0x8e,*(int *)(pcVar33 + 0x1edd74) + 0x3a50);\n              (**(code **)(*(int *)*puVar17 + 0xc))((int *)*puVar17);\n              pcVar33 = *(code **)(pcVar33 + 0x1ed720);\n              this_00 = pWVar18;\n              (*pcVar33)();\n              pLVar5 = (this_00->lock_).lock_;\n              auStack_120[0] = 0;\n              pWStack_d8 = pWVar18;\n              puStack_d4 = puVar17;\n              uStack_d0 = uVar29;\n              piStack_cc = piVar24;\n              iStack_c8 = iVar22;\n              pWStack_c4 = pWVar15;\n              ppTStack_c0 = apTStack_48;\n              (*pLVar5->_vptr_Lock_impl[2])(pLVar5);\n              pTVar2 = find_runnable_or_wait(this_00,iVar11);\n              if (pTVar2 == (Task *)0x0) {\n                pLVar5 = (this_00->lock_).lock_;\n                (*pLVar5->_vptr_Lock_impl[3])(pLVar5);\n                return false;\n              }\n              p_Var31 = *(_func_int_varargs **)(pcVar33 + 0x1f0ee8);\n              if (pTVar2->_vptr_Task[3] != p_Var31) {\n                (*pTVar2->_vptr_Task[3])(pTVar2,auStack_120);\n              }\n              pLVar5 = (this_00->lock_).lock_;\n              plStack_fc = &TStack_168.start_time_.wall;\n              pcStack_100 = *(code **)(pcVar33 + 0x1f0eec);\n              p_Stack_f4 = *(_func_int_varargs **)(pcVar33 + 0x1f0ef0);\n              piVar24 = *(int **)(pcVar33 + 0x1edd48);\n              p_Var30 = *(_func_int_varargs **)(pcVar33 + 0x1f0ef4);\n              p_Var35 = pLVar5->_vptr_Lock_impl[3];\n              this_00->running_ = this_00->running_ + 1;\n              (*p_Var35)(pLVar5);\n              iStack_f8 = *(int *)(pcVar33 + 0x1edcb0) + 0x39f0;\n              iStack_ec = *(int *)(pcVar33 + 0x1edcb0) + 0x3a08;\n              iVar22 = *(int *)(pcVar33 + 0x1ee464);\n              goto LAB_002d3eac;\n            }\n            piVar24 = (int *)puVar16[8];\n          }\n          else {\n            (*pcVar34)((int *)puVar16[9],iVar11);\n            piVar24 = (int *)puVar16[8];\n          }\n          (**(code **)(*piVar24 + 0x10))(piVar24);\n                    /* WARNING: Could not recover jumptable at 0x002d3b4c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          uVar9 = (**(code **)(*(int *)*puVar16 + 0xc))((int *)*puVar16);\n          return (bool)uVar9;\n        }" { (expression_statement "iVar11 = 0x84;" (assignment_expression "iVar11 = 0x84" identifier = number_literal) ;) (expression_statement "pcVar33 = *(code **)(puVar32 + 0x1ee1ac);" (assignment_expression "pcVar33 = *(code **)(puVar32 + 0x1ee1ac)" identifier = (pointer_expression "*(code **)(puVar32 + 0x1ee1ac)" * (cast_expression "(code **)(puVar32 + 0x1ee1ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar32 + 0x1ee1ac)" ( (binary_expression "puVar32 + 0x1ee1ac" identifier + number_literal) ))))) ;) (expression_statement "puVar16 = (undefined4 *)(*(int *)(puVar32 + 0x1ed9f8) + -0x7f8);" (assignment_expression "puVar16 = (undefined4 *)(*(int *)(puVar32 + 0x1ed9f8) + -0x7f8)" identifier = (cast_expression "(undefined4 *)(*(int *)(puVar32 + 0x1ed9f8) + -0x7f8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar32 + 0x1ed9f8) + -0x7f8)" ( (binary_expression "*(int *)(puVar32 + 0x1ed9f8) + -0x7f8" (pointer_expression "*(int *)(puVar32 + 0x1ed9f8)" * (cast_expression "(int *)(puVar32 + 0x1ed9f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x1ed9f8)" ( (binary_expression "puVar32 + 0x1ed9f8" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar33)(puVar16,0x84,*(int *)(puVar32 + 0x1ee098) + 0x3a5c);" (call_expression "(*pcVar33)(puVar16,0x84,*(int *)(puVar32 + 0x1ee098) + 0x3a5c)" (parenthesized_expression "(*pcVar33)" ( (pointer_expression "*pcVar33" * identifier) )) (argument_list "(puVar16,0x84,*(int *)(puVar32 + 0x1ee098) + 0x3a5c)" ( identifier , number_literal , (binary_expression "*(int *)(puVar32 + 0x1ee098) + 0x3a5c" (pointer_expression "*(int *)(puVar32 + 0x1ee098)" * (cast_expression "(int *)(puVar32 + 0x1ee098)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x1ee098)" ( (binary_expression "puVar32 + 0x1ee098" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(*(int *)*puVar16 + 8))((int *)*puVar16);" (call_expression "(**(code **)(*(int *)*puVar16 + 8))((int *)*puVar16)" (parenthesized_expression "(**(code **)(*(int *)*puVar16 + 8))" ( (pointer_expression "**(code **)(*(int *)*puVar16 + 8)" * (pointer_expression "*(code **)(*(int *)*puVar16 + 8)" * (cast_expression "(code **)(*(int *)*puVar16 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)*puVar16 + 8)" ( (binary_expression "*(int *)*puVar16 + 8" (pointer_expression "*(int *)*puVar16" * (cast_expression "(int *)*puVar16" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar16" * identifier))) + number_literal) ))))) )) (argument_list "((int *)*puVar16)" ( (cast_expression "(int *)*puVar16" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar16" * identifier)) ))) ;) (expression_statement "pcVar34 = *(code **)(*(int *)puVar16[9] + 8);" (assignment_expression "pcVar34 = *(code **)(*(int *)puVar16[9] + 8)" identifier = (pointer_expression "*(code **)(*(int *)puVar16[9] + 8)" * (cast_expression "(code **)(*(int *)puVar16[9] + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)puVar16[9] + 8)" ( (binary_expression "*(int *)puVar16[9] + 8" (pointer_expression "*(int *)puVar16[9]" * (cast_expression "(int *)puVar16[9]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar16[9]" identifier [ number_literal ]))) + number_literal) ))))) ;) (if_statement "if (pcVar34 == *(code **)(pcVar33 + 0x1f1098)) {\n            if (iVar11 < 1) {\n              pcVar27 = &DAT_0000006e;\n              puVar17 = (undefined4 *)(*(int *)(pcVar33 + 0x1ede68) + 0x39bc);\n              (**(code **)(pcVar33 + 0x1edf7c))(puVar17,0x6e,*(int *)(pcVar33 + 0x1ede68) + 0x3aec);\n              (**(code **)(*(int *)*puVar16 + 0xc))((int *)*puVar16);\n              pcVar33 = *(code **)(pcVar33 + 0x1ed814);\n              (*pcVar33)();\n              (**(code **)(*(int *)*puVar17 + 8))((int *)*puVar17);\n              if (*pcVar27 != '\0') {\n                piVar24 = (int *)*puVar17;\n                iVar11 = *piVar24;\n                pcVar27[8] = '\0';\n                pcVar27[9] = '\0';\n                pcVar27[10] = '\0';\n                pcVar27[0xb] = '\0';\n                *(int *)(pcVar27 + 4) = *(int *)(pcVar27 + 4) + 1;\n                    /* WARNING: Could not recover jumptable at 0x002d3c1c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                uVar9 = (**(code **)(iVar11 + 0xc))(piVar24);\n                return (bool)uVar9;\n              }\n              iVar11 = 0x8e;\n              pWVar18 = (Workqueue *)(*(int *)(pcVar33 + 0x1ed6d4) + -0x7f8);\n              (**(code **)(pcVar33 + 0x1ede88))(pWVar18,0x8e,*(int *)(pcVar33 + 0x1edd74) + 0x3a50);\n              (**(code **)(*(int *)*puVar17 + 0xc))((int *)*puVar17);\n              pcVar33 = *(code **)(pcVar33 + 0x1ed720);\n              this_00 = pWVar18;\n              (*pcVar33)();\n              pLVar5 = (this_00->lock_).lock_;\n              auStack_120[0] = 0;\n              pWStack_d8 = pWVar18;\n              puStack_d4 = puVar17;\n              uStack_d0 = uVar29;\n              piStack_cc = piVar24;\n              iStack_c8 = iVar22;\n              pWStack_c4 = pWVar15;\n              ppTStack_c0 = apTStack_48;\n              (*pLVar5->_vptr_Lock_impl[2])(pLVar5);\n              pTVar2 = find_runnable_or_wait(this_00,iVar11);\n              if (pTVar2 == (Task *)0x0) {\n                pLVar5 = (this_00->lock_).lock_;\n                (*pLVar5->_vptr_Lock_impl[3])(pLVar5);\n                return false;\n              }\n              p_Var31 = *(_func_int_varargs **)(pcVar33 + 0x1f0ee8);\n              if (pTVar2->_vptr_Task[3] != p_Var31) {\n                (*pTVar2->_vptr_Task[3])(pTVar2,auStack_120);\n              }\n              pLVar5 = (this_00->lock_).lock_;\n              plStack_fc = &TStack_168.start_time_.wall;\n              pcStack_100 = *(code **)(pcVar33 + 0x1f0eec);\n              p_Stack_f4 = *(_func_int_varargs **)(pcVar33 + 0x1f0ef0);\n              piVar24 = *(int **)(pcVar33 + 0x1edd48);\n              p_Var30 = *(_func_int_varargs **)(pcVar33 + 0x1f0ef4);\n              p_Var35 = pLVar5->_vptr_Lock_impl[3];\n              this_00->running_ = this_00->running_ + 1;\n              (*p_Var35)(pLVar5);\n              iStack_f8 = *(int *)(pcVar33 + 0x1edcb0) + 0x39f0;\n              iStack_ec = *(int *)(pcVar33 + 0x1edcb0) + 0x3a08;\n              iVar22 = *(int *)(pcVar33 + 0x1ee464);\n              goto LAB_002d3eac;\n            }\n            piVar24 = (int *)puVar16[8];\n          }\n          else {\n            (*pcVar34)((int *)puVar16[9],iVar11);\n            piVar24 = (int *)puVar16[8];\n          }" if (parenthesized_expression "(pcVar34 == *(code **)(pcVar33 + 0x1f1098))" ( (binary_expression "pcVar34 == *(code **)(pcVar33 + 0x1f1098)" identifier == (pointer_expression "*(code **)(pcVar33 + 0x1f1098)" * (cast_expression "(code **)(pcVar33 + 0x1f1098)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1f1098)" ( (binary_expression "pcVar33 + 0x1f1098" identifier + number_literal) ))))) )) (compound_statement "{\n            if (iVar11 < 1) {\n              pcVar27 = &DAT_0000006e;\n              puVar17 = (undefined4 *)(*(int *)(pcVar33 + 0x1ede68) + 0x39bc);\n              (**(code **)(pcVar33 + 0x1edf7c))(puVar17,0x6e,*(int *)(pcVar33 + 0x1ede68) + 0x3aec);\n              (**(code **)(*(int *)*puVar16 + 0xc))((int *)*puVar16);\n              pcVar33 = *(code **)(pcVar33 + 0x1ed814);\n              (*pcVar33)();\n              (**(code **)(*(int *)*puVar17 + 8))((int *)*puVar17);\n              if (*pcVar27 != '\0') {\n                piVar24 = (int *)*puVar17;\n                iVar11 = *piVar24;\n                pcVar27[8] = '\0';\n                pcVar27[9] = '\0';\n                pcVar27[10] = '\0';\n                pcVar27[0xb] = '\0';\n                *(int *)(pcVar27 + 4) = *(int *)(pcVar27 + 4) + 1;\n                    /* WARNING: Could not recover jumptable at 0x002d3c1c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                uVar9 = (**(code **)(iVar11 + 0xc))(piVar24);\n                return (bool)uVar9;\n              }\n              iVar11 = 0x8e;\n              pWVar18 = (Workqueue *)(*(int *)(pcVar33 + 0x1ed6d4) + -0x7f8);\n              (**(code **)(pcVar33 + 0x1ede88))(pWVar18,0x8e,*(int *)(pcVar33 + 0x1edd74) + 0x3a50);\n              (**(code **)(*(int *)*puVar17 + 0xc))((int *)*puVar17);\n              pcVar33 = *(code **)(pcVar33 + 0x1ed720);\n              this_00 = pWVar18;\n              (*pcVar33)();\n              pLVar5 = (this_00->lock_).lock_;\n              auStack_120[0] = 0;\n              pWStack_d8 = pWVar18;\n              puStack_d4 = puVar17;\n              uStack_d0 = uVar29;\n              piStack_cc = piVar24;\n              iStack_c8 = iVar22;\n              pWStack_c4 = pWVar15;\n              ppTStack_c0 = apTStack_48;\n              (*pLVar5->_vptr_Lock_impl[2])(pLVar5);\n              pTVar2 = find_runnable_or_wait(this_00,iVar11);\n              if (pTVar2 == (Task *)0x0) {\n                pLVar5 = (this_00->lock_).lock_;\n                (*pLVar5->_vptr_Lock_impl[3])(pLVar5);\n                return false;\n              }\n              p_Var31 = *(_func_int_varargs **)(pcVar33 + 0x1f0ee8);\n              if (pTVar2->_vptr_Task[3] != p_Var31) {\n                (*pTVar2->_vptr_Task[3])(pTVar2,auStack_120);\n              }\n              pLVar5 = (this_00->lock_).lock_;\n              plStack_fc = &TStack_168.start_time_.wall;\n              pcStack_100 = *(code **)(pcVar33 + 0x1f0eec);\n              p_Stack_f4 = *(_func_int_varargs **)(pcVar33 + 0x1f0ef0);\n              piVar24 = *(int **)(pcVar33 + 0x1edd48);\n              p_Var30 = *(_func_int_varargs **)(pcVar33 + 0x1f0ef4);\n              p_Var35 = pLVar5->_vptr_Lock_impl[3];\n              this_00->running_ = this_00->running_ + 1;\n              (*p_Var35)(pLVar5);\n              iStack_f8 = *(int *)(pcVar33 + 0x1edcb0) + 0x39f0;\n              iStack_ec = *(int *)(pcVar33 + 0x1edcb0) + 0x3a08;\n              iVar22 = *(int *)(pcVar33 + 0x1ee464);\n              goto LAB_002d3eac;\n            }\n            piVar24 = (int *)puVar16[8];\n          }" { (if_statement "if (iVar11 < 1) {\n              pcVar27 = &DAT_0000006e;\n              puVar17 = (undefined4 *)(*(int *)(pcVar33 + 0x1ede68) + 0x39bc);\n              (**(code **)(pcVar33 + 0x1edf7c))(puVar17,0x6e,*(int *)(pcVar33 + 0x1ede68) + 0x3aec);\n              (**(code **)(*(int *)*puVar16 + 0xc))((int *)*puVar16);\n              pcVar33 = *(code **)(pcVar33 + 0x1ed814);\n              (*pcVar33)();\n              (**(code **)(*(int *)*puVar17 + 8))((int *)*puVar17);\n              if (*pcVar27 != '\0') {\n                piVar24 = (int *)*puVar17;\n                iVar11 = *piVar24;\n                pcVar27[8] = '\0';\n                pcVar27[9] = '\0';\n                pcVar27[10] = '\0';\n                pcVar27[0xb] = '\0';\n                *(int *)(pcVar27 + 4) = *(int *)(pcVar27 + 4) + 1;\n                    /* WARNING: Could not recover jumptable at 0x002d3c1c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                uVar9 = (**(code **)(iVar11 + 0xc))(piVar24);\n                return (bool)uVar9;\n              }\n              iVar11 = 0x8e;\n              pWVar18 = (Workqueue *)(*(int *)(pcVar33 + 0x1ed6d4) + -0x7f8);\n              (**(code **)(pcVar33 + 0x1ede88))(pWVar18,0x8e,*(int *)(pcVar33 + 0x1edd74) + 0x3a50);\n              (**(code **)(*(int *)*puVar17 + 0xc))((int *)*puVar17);\n              pcVar33 = *(code **)(pcVar33 + 0x1ed720);\n              this_00 = pWVar18;\n              (*pcVar33)();\n              pLVar5 = (this_00->lock_).lock_;\n              auStack_120[0] = 0;\n              pWStack_d8 = pWVar18;\n              puStack_d4 = puVar17;\n              uStack_d0 = uVar29;\n              piStack_cc = piVar24;\n              iStack_c8 = iVar22;\n              pWStack_c4 = pWVar15;\n              ppTStack_c0 = apTStack_48;\n              (*pLVar5->_vptr_Lock_impl[2])(pLVar5);\n              pTVar2 = find_runnable_or_wait(this_00,iVar11);\n              if (pTVar2 == (Task *)0x0) {\n                pLVar5 = (this_00->lock_).lock_;\n                (*pLVar5->_vptr_Lock_impl[3])(pLVar5);\n                return false;\n              }\n              p_Var31 = *(_func_int_varargs **)(pcVar33 + 0x1f0ee8);\n              if (pTVar2->_vptr_Task[3] != p_Var31) {\n                (*pTVar2->_vptr_Task[3])(pTVar2,auStack_120);\n              }\n              pLVar5 = (this_00->lock_).lock_;\n              plStack_fc = &TStack_168.start_time_.wall;\n              pcStack_100 = *(code **)(pcVar33 + 0x1f0eec);\n              p_Stack_f4 = *(_func_int_varargs **)(pcVar33 + 0x1f0ef0);\n              piVar24 = *(int **)(pcVar33 + 0x1edd48);\n              p_Var30 = *(_func_int_varargs **)(pcVar33 + 0x1f0ef4);\n              p_Var35 = pLVar5->_vptr_Lock_impl[3];\n              this_00->running_ = this_00->running_ + 1;\n              (*p_Var35)(pLVar5);\n              iStack_f8 = *(int *)(pcVar33 + 0x1edcb0) + 0x39f0;\n              iStack_ec = *(int *)(pcVar33 + 0x1edcb0) + 0x3a08;\n              iVar22 = *(int *)(pcVar33 + 0x1ee464);\n              goto LAB_002d3eac;\n            }" if (parenthesized_expression "(iVar11 < 1)" ( (binary_expression "iVar11 < 1" identifier < number_literal) )) (compound_statement "{\n              pcVar27 = &DAT_0000006e;\n              puVar17 = (undefined4 *)(*(int *)(pcVar33 + 0x1ede68) + 0x39bc);\n              (**(code **)(pcVar33 + 0x1edf7c))(puVar17,0x6e,*(int *)(pcVar33 + 0x1ede68) + 0x3aec);\n              (**(code **)(*(int *)*puVar16 + 0xc))((int *)*puVar16);\n              pcVar33 = *(code **)(pcVar33 + 0x1ed814);\n              (*pcVar33)();\n              (**(code **)(*(int *)*puVar17 + 8))((int *)*puVar17);\n              if (*pcVar27 != '\0') {\n                piVar24 = (int *)*puVar17;\n                iVar11 = *piVar24;\n                pcVar27[8] = '\0';\n                pcVar27[9] = '\0';\n                pcVar27[10] = '\0';\n                pcVar27[0xb] = '\0';\n                *(int *)(pcVar27 + 4) = *(int *)(pcVar27 + 4) + 1;\n                    /* WARNING: Could not recover jumptable at 0x002d3c1c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                uVar9 = (**(code **)(iVar11 + 0xc))(piVar24);\n                return (bool)uVar9;\n              }\n              iVar11 = 0x8e;\n              pWVar18 = (Workqueue *)(*(int *)(pcVar33 + 0x1ed6d4) + -0x7f8);\n              (**(code **)(pcVar33 + 0x1ede88))(pWVar18,0x8e,*(int *)(pcVar33 + 0x1edd74) + 0x3a50);\n              (**(code **)(*(int *)*puVar17 + 0xc))((int *)*puVar17);\n              pcVar33 = *(code **)(pcVar33 + 0x1ed720);\n              this_00 = pWVar18;\n              (*pcVar33)();\n              pLVar5 = (this_00->lock_).lock_;\n              auStack_120[0] = 0;\n              pWStack_d8 = pWVar18;\n              puStack_d4 = puVar17;\n              uStack_d0 = uVar29;\n              piStack_cc = piVar24;\n              iStack_c8 = iVar22;\n              pWStack_c4 = pWVar15;\n              ppTStack_c0 = apTStack_48;\n              (*pLVar5->_vptr_Lock_impl[2])(pLVar5);\n              pTVar2 = find_runnable_or_wait(this_00,iVar11);\n              if (pTVar2 == (Task *)0x0) {\n                pLVar5 = (this_00->lock_).lock_;\n                (*pLVar5->_vptr_Lock_impl[3])(pLVar5);\n                return false;\n              }\n              p_Var31 = *(_func_int_varargs **)(pcVar33 + 0x1f0ee8);\n              if (pTVar2->_vptr_Task[3] != p_Var31) {\n                (*pTVar2->_vptr_Task[3])(pTVar2,auStack_120);\n              }\n              pLVar5 = (this_00->lock_).lock_;\n              plStack_fc = &TStack_168.start_time_.wall;\n              pcStack_100 = *(code **)(pcVar33 + 0x1f0eec);\n              p_Stack_f4 = *(_func_int_varargs **)(pcVar33 + 0x1f0ef0);\n              piVar24 = *(int **)(pcVar33 + 0x1edd48);\n              p_Var30 = *(_func_int_varargs **)(pcVar33 + 0x1f0ef4);\n              p_Var35 = pLVar5->_vptr_Lock_impl[3];\n              this_00->running_ = this_00->running_ + 1;\n              (*p_Var35)(pLVar5);\n              iStack_f8 = *(int *)(pcVar33 + 0x1edcb0) + 0x39f0;\n              iStack_ec = *(int *)(pcVar33 + 0x1edcb0) + 0x3a08;\n              iVar22 = *(int *)(pcVar33 + 0x1ee464);\n              goto LAB_002d3eac;\n            }" { (expression_statement "pcVar27 = &DAT_0000006e;" (assignment_expression "pcVar27 = &DAT_0000006e" identifier = (pointer_expression "&DAT_0000006e" & identifier)) ;) (expression_statement "puVar17 = (undefined4 *)(*(int *)(pcVar33 + 0x1ede68) + 0x39bc);" (assignment_expression "puVar17 = (undefined4 *)(*(int *)(pcVar33 + 0x1ede68) + 0x39bc)" identifier = (cast_expression "(undefined4 *)(*(int *)(pcVar33 + 0x1ede68) + 0x39bc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar33 + 0x1ede68) + 0x39bc)" ( (binary_expression "*(int *)(pcVar33 + 0x1ede68) + 0x39bc" (pointer_expression "*(int *)(pcVar33 + 0x1ede68)" * (cast_expression "(int *)(pcVar33 + 0x1ede68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x1ede68)" ( (binary_expression "pcVar33 + 0x1ede68" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar33 + 0x1edf7c))(puVar17,0x6e,*(int *)(pcVar33 + 0x1ede68) + 0x3aec);" (call_expression "(**(code **)(pcVar33 + 0x1edf7c))(puVar17,0x6e,*(int *)(pcVar33 + 0x1ede68) + 0x3aec)" (parenthesized_expression "(**(code **)(pcVar33 + 0x1edf7c))" ( (pointer_expression "**(code **)(pcVar33 + 0x1edf7c)" * (pointer_expression "*(code **)(pcVar33 + 0x1edf7c)" * (cast_expression "(code **)(pcVar33 + 0x1edf7c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1edf7c)" ( (binary_expression "pcVar33 + 0x1edf7c" identifier + number_literal) ))))) )) (argument_list "(puVar17,0x6e,*(int *)(pcVar33 + 0x1ede68) + 0x3aec)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar33 + 0x1ede68) + 0x3aec" (pointer_expression "*(int *)(pcVar33 + 0x1ede68)" * (cast_expression "(int *)(pcVar33 + 0x1ede68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x1ede68)" ( (binary_expression "pcVar33 + 0x1ede68" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(*(int *)*puVar16 + 0xc))((int *)*puVar16);" (call_expression "(**(code **)(*(int *)*puVar16 + 0xc))((int *)*puVar16)" (parenthesized_expression "(**(code **)(*(int *)*puVar16 + 0xc))" ( (pointer_expression "**(code **)(*(int *)*puVar16 + 0xc)" * (pointer_expression "*(code **)(*(int *)*puVar16 + 0xc)" * (cast_expression "(code **)(*(int *)*puVar16 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)*puVar16 + 0xc)" ( (binary_expression "*(int *)*puVar16 + 0xc" (pointer_expression "*(int *)*puVar16" * (cast_expression "(int *)*puVar16" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar16" * identifier))) + number_literal) ))))) )) (argument_list "((int *)*puVar16)" ( (cast_expression "(int *)*puVar16" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar16" * identifier)) ))) ;) (expression_statement "pcVar33 = *(code **)(pcVar33 + 0x1ed814);" (assignment_expression "pcVar33 = *(code **)(pcVar33 + 0x1ed814)" identifier = (pointer_expression "*(code **)(pcVar33 + 0x1ed814)" * (cast_expression "(code **)(pcVar33 + 0x1ed814)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1ed814)" ( (binary_expression "pcVar33 + 0x1ed814" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar33)();" (call_expression "(*pcVar33)()" (parenthesized_expression "(*pcVar33)" ( (pointer_expression "*pcVar33" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(*(int *)*puVar17 + 8))((int *)*puVar17);" (call_expression "(**(code **)(*(int *)*puVar17 + 8))((int *)*puVar17)" (parenthesized_expression "(**(code **)(*(int *)*puVar17 + 8))" ( (pointer_expression "**(code **)(*(int *)*puVar17 + 8)" * (pointer_expression "*(code **)(*(int *)*puVar17 + 8)" * (cast_expression "(code **)(*(int *)*puVar17 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)*puVar17 + 8)" ( (binary_expression "*(int *)*puVar17 + 8" (pointer_expression "*(int *)*puVar17" * (cast_expression "(int *)*puVar17" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar17" * identifier))) + number_literal) ))))) )) (argument_list "((int *)*puVar17)" ( (cast_expression "(int *)*puVar17" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar17" * identifier)) ))) ;) (if_statement "if (*pcVar27 != '\0') {\n                piVar24 = (int *)*puVar17;\n                iVar11 = *piVar24;\n                pcVar27[8] = '\0';\n                pcVar27[9] = '\0';\n                pcVar27[10] = '\0';\n                pcVar27[0xb] = '\0';\n                *(int *)(pcVar27 + 4) = *(int *)(pcVar27 + 4) + 1;\n                    /* WARNING: Could not recover jumptable at 0x002d3c1c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                uVar9 = (**(code **)(iVar11 + 0xc))(piVar24);\n                return (bool)uVar9;\n              }" if (parenthesized_expression "(*pcVar27 != '\0')" ( (binary_expression "*pcVar27 != '\0'" (pointer_expression "*pcVar27" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                piVar24 = (int *)*puVar17;\n                iVar11 = *piVar24;\n                pcVar27[8] = '\0';\n                pcVar27[9] = '\0';\n                pcVar27[10] = '\0';\n                pcVar27[0xb] = '\0';\n                *(int *)(pcVar27 + 4) = *(int *)(pcVar27 + 4) + 1;\n                    /* WARNING: Could not recover jumptable at 0x002d3c1c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n                uVar9 = (**(code **)(iVar11 + 0xc))(piVar24);\n                return (bool)uVar9;\n              }" { (expression_statement "piVar24 = (int *)*puVar17;" (assignment_expression "piVar24 = (int *)*puVar17" identifier = (cast_expression "(int *)*puVar17" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar17" * identifier))) ;) (expression_statement "iVar11 = *piVar24;" (assignment_expression "iVar11 = *piVar24" identifier = (pointer_expression "*piVar24" * identifier)) ;) (expression_statement "pcVar27[8] = '\0';" (assignment_expression "pcVar27[8] = '\0'" (subscript_expression "pcVar27[8]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar27[9] = '\0';" (assignment_expression "pcVar27[9] = '\0'" (subscript_expression "pcVar27[9]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar27[10] = '\0';" (assignment_expression "pcVar27[10] = '\0'" (subscript_expression "pcVar27[10]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar27[0xb] = '\0';" (assignment_expression "pcVar27[0xb] = '\0'" (subscript_expression "pcVar27[0xb]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "*(int *)(pcVar27 + 4) = *(int *)(pcVar27 + 4) + 1;" (assignment_expression "*(int *)(pcVar27 + 4) = *(int *)(pcVar27 + 4) + 1" (pointer_expression "*(int *)(pcVar27 + 4)" * (cast_expression "(int *)(pcVar27 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 4)" ( (binary_expression "pcVar27 + 4" identifier + number_literal) )))) = (binary_expression "*(int *)(pcVar27 + 4) + 1" (pointer_expression "*(int *)(pcVar27 + 4)" * (cast_expression "(int *)(pcVar27 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 4)" ( (binary_expression "pcVar27 + 4" identifier + number_literal) )))) + number_literal)) ;) comment comment (expression_statement "uVar9 = (**(code **)(iVar11 + 0xc))(piVar24);" (assignment_expression "uVar9 = (**(code **)(iVar11 + 0xc))(piVar24)" identifier = (call_expression "(**(code **)(iVar11 + 0xc))(piVar24)" (parenthesized_expression "(**(code **)(iVar11 + 0xc))" ( (pointer_expression "**(code **)(iVar11 + 0xc)" * (pointer_expression "*(code **)(iVar11 + 0xc)" * (cast_expression "(code **)(iVar11 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) ))))) )) (argument_list "(piVar24)" ( identifier )))) ;) (return_statement "return (bool)uVar9;" return (cast_expression "(bool)uVar9" ( (type_descriptor "bool" primitive_type) ) identifier) ;) })) (expression_statement "iVar11 = 0x8e;" (assignment_expression "iVar11 = 0x8e" identifier = number_literal) ;) (expression_statement "pWVar18 = (Workqueue *)(*(int *)(pcVar33 + 0x1ed6d4) + -0x7f8);" (assignment_expression "pWVar18 = (Workqueue *)(*(int *)(pcVar33 + 0x1ed6d4) + -0x7f8)" identifier = (cast_expression "(Workqueue *)(*(int *)(pcVar33 + 0x1ed6d4) + -0x7f8)" ( (type_descriptor "Workqueue *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar33 + 0x1ed6d4) + -0x7f8)" ( (binary_expression "*(int *)(pcVar33 + 0x1ed6d4) + -0x7f8" (pointer_expression "*(int *)(pcVar33 + 0x1ed6d4)" * (cast_expression "(int *)(pcVar33 + 0x1ed6d4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x1ed6d4)" ( (binary_expression "pcVar33 + 0x1ed6d4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar33 + 0x1ede88))(pWVar18,0x8e,*(int *)(pcVar33 + 0x1edd74) + 0x3a50);" (call_expression "(**(code **)(pcVar33 + 0x1ede88))(pWVar18,0x8e,*(int *)(pcVar33 + 0x1edd74) + 0x3a50)" (parenthesized_expression "(**(code **)(pcVar33 + 0x1ede88))" ( (pointer_expression "**(code **)(pcVar33 + 0x1ede88)" * (pointer_expression "*(code **)(pcVar33 + 0x1ede88)" * (cast_expression "(code **)(pcVar33 + 0x1ede88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1ede88)" ( (binary_expression "pcVar33 + 0x1ede88" identifier + number_literal) ))))) )) (argument_list "(pWVar18,0x8e,*(int *)(pcVar33 + 0x1edd74) + 0x3a50)" ( identifier , number_literal , (binary_expression "*(int *)(pcVar33 + 0x1edd74) + 0x3a50" (pointer_expression "*(int *)(pcVar33 + 0x1edd74)" * (cast_expression "(int *)(pcVar33 + 0x1edd74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x1edd74)" ( (binary_expression "pcVar33 + 0x1edd74" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(*(int *)*puVar17 + 0xc))((int *)*puVar17);" (call_expression "(**(code **)(*(int *)*puVar17 + 0xc))((int *)*puVar17)" (parenthesized_expression "(**(code **)(*(int *)*puVar17 + 0xc))" ( (pointer_expression "**(code **)(*(int *)*puVar17 + 0xc)" * (pointer_expression "*(code **)(*(int *)*puVar17 + 0xc)" * (cast_expression "(code **)(*(int *)*puVar17 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)*puVar17 + 0xc)" ( (binary_expression "*(int *)*puVar17 + 0xc" (pointer_expression "*(int *)*puVar17" * (cast_expression "(int *)*puVar17" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar17" * identifier))) + number_literal) ))))) )) (argument_list "((int *)*puVar17)" ( (cast_expression "(int *)*puVar17" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar17" * identifier)) ))) ;) (expression_statement "pcVar33 = *(code **)(pcVar33 + 0x1ed720);" (assignment_expression "pcVar33 = *(code **)(pcVar33 + 0x1ed720)" identifier = (pointer_expression "*(code **)(pcVar33 + 0x1ed720)" * (cast_expression "(code **)(pcVar33 + 0x1ed720)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1ed720)" ( (binary_expression "pcVar33 + 0x1ed720" identifier + number_literal) ))))) ;) (expression_statement "this_00 = pWVar18;" (assignment_expression "this_00 = pWVar18" identifier = identifier) ;) (expression_statement "(*pcVar33)();" (call_expression "(*pcVar33)()" (parenthesized_expression "(*pcVar33)" ( (pointer_expression "*pcVar33" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pLVar5 = (this_00->lock_).lock_;" (assignment_expression "pLVar5 = (this_00->lock_).lock_" identifier = (field_expression "(this_00->lock_).lock_" (parenthesized_expression "(this_00->lock_)" ( (field_expression "this_00->lock_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "auStack_120[0] = 0;" (assignment_expression "auStack_120[0] = 0" (subscript_expression "auStack_120[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pWStack_d8 = pWVar18;" (assignment_expression "pWStack_d8 = pWVar18" identifier = identifier) ;) (expression_statement "puStack_d4 = puVar17;" (assignment_expression "puStack_d4 = puVar17" identifier = identifier) ;) (expression_statement "uStack_d0 = uVar29;" (assignment_expression "uStack_d0 = uVar29" identifier = identifier) ;) (expression_statement "piStack_cc = piVar24;" (assignment_expression "piStack_cc = piVar24" identifier = identifier) ;) (expression_statement "iStack_c8 = iVar22;" (assignment_expression "iStack_c8 = iVar22" identifier = identifier) ;) (expression_statement "pWStack_c4 = pWVar15;" (assignment_expression "pWStack_c4 = pWVar15" identifier = identifier) ;) (expression_statement "ppTStack_c0 = apTStack_48;" (assignment_expression "ppTStack_c0 = apTStack_48" identifier = identifier) ;) (expression_statement "(*pLVar5->_vptr_Lock_impl[2])(pLVar5);" (call_expression "(*pLVar5->_vptr_Lock_impl[2])(pLVar5)" (parenthesized_expression "(*pLVar5->_vptr_Lock_impl[2])" ( (pointer_expression "*pLVar5->_vptr_Lock_impl[2]" * (subscript_expression "pLVar5->_vptr_Lock_impl[2]" (field_expression "pLVar5->_vptr_Lock_impl" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(pLVar5)" ( identifier ))) ;) (expression_statement "pTVar2 = find_runnable_or_wait(this_00,iVar11);" (assignment_expression "pTVar2 = find_runnable_or_wait(this_00,iVar11)" identifier = (call_expression "find_runnable_or_wait(this_00,iVar11)" identifier (argument_list "(this_00,iVar11)" ( identifier , identifier )))) ;) (if_statement "if (pTVar2 == (Task *)0x0) {\n                pLVar5 = (this_00->lock_).lock_;\n                (*pLVar5->_vptr_Lock_impl[3])(pLVar5);\n                return false;\n              }" if (parenthesized_expression "(pTVar2 == (Task *)0x0)" ( (binary_expression "pTVar2 == (Task *)0x0" identifier == (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                pLVar5 = (this_00->lock_).lock_;\n                (*pLVar5->_vptr_Lock_impl[3])(pLVar5);\n                return false;\n              }" { (expression_statement "pLVar5 = (this_00->lock_).lock_;" (assignment_expression "pLVar5 = (this_00->lock_).lock_" identifier = (field_expression "(this_00->lock_).lock_" (parenthesized_expression "(this_00->lock_)" ( (field_expression "this_00->lock_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "(*pLVar5->_vptr_Lock_impl[3])(pLVar5);" (call_expression "(*pLVar5->_vptr_Lock_impl[3])(pLVar5)" (parenthesized_expression "(*pLVar5->_vptr_Lock_impl[3])" ( (pointer_expression "*pLVar5->_vptr_Lock_impl[3]" * (subscript_expression "pLVar5->_vptr_Lock_impl[3]" (field_expression "pLVar5->_vptr_Lock_impl" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(pLVar5)" ( identifier ))) ;) (return_statement "return false;" return false ;) })) (expression_statement "p_Var31 = *(_func_int_varargs **)(pcVar33 + 0x1f0ee8);" (assignment_expression "p_Var31 = *(_func_int_varargs **)(pcVar33 + 0x1f0ee8)" identifier = (pointer_expression "*(_func_int_varargs **)(pcVar33 + 0x1f0ee8)" * (cast_expression "(_func_int_varargs **)(pcVar33 + 0x1f0ee8)" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1f0ee8)" ( (binary_expression "pcVar33 + 0x1f0ee8" identifier + number_literal) ))))) ;) (if_statement "if (pTVar2->_vptr_Task[3] != p_Var31) {\n                (*pTVar2->_vptr_Task[3])(pTVar2,auStack_120);\n              }" if (parenthesized_expression "(pTVar2->_vptr_Task[3] != p_Var31)" ( (binary_expression "pTVar2->_vptr_Task[3] != p_Var31" (subscript_expression "pTVar2->_vptr_Task[3]" (field_expression "pTVar2->_vptr_Task" identifier -> field_identifier) [ number_literal ]) != identifier) )) (compound_statement "{\n                (*pTVar2->_vptr_Task[3])(pTVar2,auStack_120);\n              }" { (expression_statement "(*pTVar2->_vptr_Task[3])(pTVar2,auStack_120);" (call_expression "(*pTVar2->_vptr_Task[3])(pTVar2,auStack_120)" (parenthesized_expression "(*pTVar2->_vptr_Task[3])" ( (pointer_expression "*pTVar2->_vptr_Task[3]" * (subscript_expression "pTVar2->_vptr_Task[3]" (field_expression "pTVar2->_vptr_Task" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(pTVar2,auStack_120)" ( identifier , identifier ))) ;) })) (expression_statement "pLVar5 = (this_00->lock_).lock_;" (assignment_expression "pLVar5 = (this_00->lock_).lock_" identifier = (field_expression "(this_00->lock_).lock_" (parenthesized_expression "(this_00->lock_)" ( (field_expression "this_00->lock_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "plStack_fc = &TStack_168.start_time_.wall;" (assignment_expression "plStack_fc = &TStack_168.start_time_.wall" identifier = (pointer_expression "&TStack_168.start_time_.wall" & (field_expression "TStack_168.start_time_.wall" (field_expression "TStack_168.start_time_" identifier . field_identifier) . field_identifier))) ;) (expression_statement "pcStack_100 = *(code **)(pcVar33 + 0x1f0eec);" (assignment_expression "pcStack_100 = *(code **)(pcVar33 + 0x1f0eec)" identifier = (pointer_expression "*(code **)(pcVar33 + 0x1f0eec)" * (cast_expression "(code **)(pcVar33 + 0x1f0eec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1f0eec)" ( (binary_expression "pcVar33 + 0x1f0eec" identifier + number_literal) ))))) ;) (expression_statement "p_Stack_f4 = *(_func_int_varargs **)(pcVar33 + 0x1f0ef0);" (assignment_expression "p_Stack_f4 = *(_func_int_varargs **)(pcVar33 + 0x1f0ef0)" identifier = (pointer_expression "*(_func_int_varargs **)(pcVar33 + 0x1f0ef0)" * (cast_expression "(_func_int_varargs **)(pcVar33 + 0x1f0ef0)" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1f0ef0)" ( (binary_expression "pcVar33 + 0x1f0ef0" identifier + number_literal) ))))) ;) (expression_statement "piVar24 = *(int **)(pcVar33 + 0x1edd48);" (assignment_expression "piVar24 = *(int **)(pcVar33 + 0x1edd48)" identifier = (pointer_expression "*(int **)(pcVar33 + 0x1edd48)" * (cast_expression "(int **)(pcVar33 + 0x1edd48)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1edd48)" ( (binary_expression "pcVar33 + 0x1edd48" identifier + number_literal) ))))) ;) (expression_statement "p_Var30 = *(_func_int_varargs **)(pcVar33 + 0x1f0ef4);" (assignment_expression "p_Var30 = *(_func_int_varargs **)(pcVar33 + 0x1f0ef4)" identifier = (pointer_expression "*(_func_int_varargs **)(pcVar33 + 0x1f0ef4)" * (cast_expression "(_func_int_varargs **)(pcVar33 + 0x1f0ef4)" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1f0ef4)" ( (binary_expression "pcVar33 + 0x1f0ef4" identifier + number_literal) ))))) ;) (expression_statement "p_Var35 = pLVar5->_vptr_Lock_impl[3];" (assignment_expression "p_Var35 = pLVar5->_vptr_Lock_impl[3]" identifier = (subscript_expression "pLVar5->_vptr_Lock_impl[3]" (field_expression "pLVar5->_vptr_Lock_impl" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "this_00->running_ = this_00->running_ + 1;" (assignment_expression "this_00->running_ = this_00->running_ + 1" (field_expression "this_00->running_" identifier -> field_identifier) = (binary_expression "this_00->running_ + 1" (field_expression "this_00->running_" identifier -> field_identifier) + number_literal)) ;) (expression_statement "(*p_Var35)(pLVar5);" (call_expression "(*p_Var35)(pLVar5)" (parenthesized_expression "(*p_Var35)" ( (pointer_expression "*p_Var35" * identifier) )) (argument_list "(pLVar5)" ( identifier ))) ;) (expression_statement "iStack_f8 = *(int *)(pcVar33 + 0x1edcb0) + 0x39f0;" (assignment_expression "iStack_f8 = *(int *)(pcVar33 + 0x1edcb0) + 0x39f0" identifier = (binary_expression "*(int *)(pcVar33 + 0x1edcb0) + 0x39f0" (pointer_expression "*(int *)(pcVar33 + 0x1edcb0)" * (cast_expression "(int *)(pcVar33 + 0x1edcb0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x1edcb0)" ( (binary_expression "pcVar33 + 0x1edcb0" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iStack_ec = *(int *)(pcVar33 + 0x1edcb0) + 0x3a08;" (assignment_expression "iStack_ec = *(int *)(pcVar33 + 0x1edcb0) + 0x3a08" identifier = (binary_expression "*(int *)(pcVar33 + 0x1edcb0) + 0x3a08" (pointer_expression "*(int *)(pcVar33 + 0x1edcb0)" * (cast_expression "(int *)(pcVar33 + 0x1edcb0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x1edcb0)" ( (binary_expression "pcVar33 + 0x1edcb0" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar22 = *(int *)(pcVar33 + 0x1ee464);" (assignment_expression "iVar22 = *(int *)(pcVar33 + 0x1ee464)" identifier = (pointer_expression "*(int *)(pcVar33 + 0x1ee464)" * (cast_expression "(int *)(pcVar33 + 0x1ee464)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x1ee464)" ( (binary_expression "pcVar33 + 0x1ee464" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_002d3eac;" goto statement_identifier ;) })) (expression_statement "piVar24 = (int *)puVar16[8];" (assignment_expression "piVar24 = (int *)puVar16[8]" identifier = (cast_expression "(int *)puVar16[8]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar16[8]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n            (*pcVar34)((int *)puVar16[9],iVar11);\n            piVar24 = (int *)puVar16[8];\n          }" else (compound_statement "{\n            (*pcVar34)((int *)puVar16[9],iVar11);\n            piVar24 = (int *)puVar16[8];\n          }" { (expression_statement "(*pcVar34)((int *)puVar16[9],iVar11);" (call_expression "(*pcVar34)((int *)puVar16[9],iVar11)" (parenthesized_expression "(*pcVar34)" ( (pointer_expression "*pcVar34" * identifier) )) (argument_list "((int *)puVar16[9],iVar11)" ( (cast_expression "(int *)puVar16[9]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar16[9]" identifier [ number_literal ])) , identifier ))) ;) (expression_statement "piVar24 = (int *)puVar16[8];" (assignment_expression "piVar24 = (int *)puVar16[8]" identifier = (cast_expression "(int *)puVar16[8]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar16[8]" identifier [ number_literal ]))) ;) }))) (expression_statement "(**(code **)(*piVar24 + 0x10))(piVar24);" (call_expression "(**(code **)(*piVar24 + 0x10))(piVar24)" (parenthesized_expression "(**(code **)(*piVar24 + 0x10))" ( (pointer_expression "**(code **)(*piVar24 + 0x10)" * (pointer_expression "*(code **)(*piVar24 + 0x10)" * (cast_expression "(code **)(*piVar24 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar24 + 0x10)" ( (binary_expression "*piVar24 + 0x10" (pointer_expression "*piVar24" * identifier) + number_literal) ))))) )) (argument_list "(piVar24)" ( identifier ))) ;) comment comment (expression_statement "uVar9 = (**(code **)(*(int *)*puVar16 + 0xc))((int *)*puVar16);" (assignment_expression "uVar9 = (**(code **)(*(int *)*puVar16 + 0xc))((int *)*puVar16)" identifier = (call_expression "(**(code **)(*(int *)*puVar16 + 0xc))((int *)*puVar16)" (parenthesized_expression "(**(code **)(*(int *)*puVar16 + 0xc))" ( (pointer_expression "**(code **)(*(int *)*puVar16 + 0xc)" * (pointer_expression "*(code **)(*(int *)*puVar16 + 0xc)" * (cast_expression "(code **)(*(int *)*puVar16 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)*puVar16 + 0xc)" ( (binary_expression "*(int *)*puVar16 + 0xc" (pointer_expression "*(int *)*puVar16" * (cast_expression "(int *)*puVar16" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar16" * identifier))) + number_literal) ))))) )) (argument_list "((int *)*puVar16)" ( (cast_expression "(int *)*puVar16" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar16" * identifier)) )))) ;) (return_statement "return (bool)uVar9;" return (cast_expression "(bool)uVar9" ( (type_descriptor "bool" primitive_type) ) identifier) ;) })) (expression_statement "pcVar27[8] = '\0';" (assignment_expression "pcVar27[8] = '\0'" (subscript_expression "pcVar27[8]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar27[9] = '\0';" (assignment_expression "pcVar27[9] = '\0'" (subscript_expression "pcVar27[9]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar27[10] = '\0';" (assignment_expression "pcVar27[10] = '\0'" (subscript_expression "pcVar27[10]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar27[0xb] = '\0';" (assignment_expression "pcVar27[0xb] = '\0'" (subscript_expression "pcVar27[0xb]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (do_statement "do {\n          pTVar2 = *(Task **)(pcVar27 + 0xc);\n          if (pTVar2 == (Task *)0x0) break;\n          pTVar4 = pTVar2->list_next_;\n          if (pTVar2 == *(Task **)(pcVar27 + 0x10)) {\n            if (pTVar4 != (Task *)0x0) goto LAB_002d3a94;\n            pcVar27[0xc] = '\0';\n            pcVar27[0xd] = '\0';\n            pcVar27[0xe] = '\0';\n            pcVar27[0xf] = '\0';\n            pcVar27[0x10] = '\0';\n            pcVar27[0x11] = '\0';\n            pcVar27[0x12] = '\0';\n            pcVar27[0x13] = '\0';\n          }\n          else {\n            *(Task **)(pcVar27 + 0xc) = pTVar4;\n            if (pTVar4 == (Task *)0x0) goto LAB_002d3a5c;\n            pTVar2->list_next_ = (Task *)0x0;\n          }\n          pWVar15->waiting_ = pWVar15->waiting_ + -1;\n          bVar8 = return_or_queue(pWVar15,pTVar2,false,apTStack_48);\n        } while (CONCAT31(extraout_var,bVar8) == 0);" do (compound_statement "{\n          pTVar2 = *(Task **)(pcVar27 + 0xc);\n          if (pTVar2 == (Task *)0x0) break;\n          pTVar4 = pTVar2->list_next_;\n          if (pTVar2 == *(Task **)(pcVar27 + 0x10)) {\n            if (pTVar4 != (Task *)0x0) goto LAB_002d3a94;\n            pcVar27[0xc] = '\0';\n            pcVar27[0xd] = '\0';\n            pcVar27[0xe] = '\0';\n            pcVar27[0xf] = '\0';\n            pcVar27[0x10] = '\0';\n            pcVar27[0x11] = '\0';\n            pcVar27[0x12] = '\0';\n            pcVar27[0x13] = '\0';\n          }\n          else {\n            *(Task **)(pcVar27 + 0xc) = pTVar4;\n            if (pTVar4 == (Task *)0x0) goto LAB_002d3a5c;\n            pTVar2->list_next_ = (Task *)0x0;\n          }\n          pWVar15->waiting_ = pWVar15->waiting_ + -1;\n          bVar8 = return_or_queue(pWVar15,pTVar2,false,apTStack_48);\n        }" { (expression_statement "pTVar2 = *(Task **)(pcVar27 + 0xc);" (assignment_expression "pTVar2 = *(Task **)(pcVar27 + 0xc)" identifier = (pointer_expression "*(Task **)(pcVar27 + 0xc)" * (cast_expression "(Task **)(pcVar27 + 0xc)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0xc)" ( (binary_expression "pcVar27 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (pTVar2 == (Task *)0x0) break;" if (parenthesized_expression "(pTVar2 == (Task *)0x0)" ( (binary_expression "pTVar2 == (Task *)0x0" identifier == (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "pTVar4 = pTVar2->list_next_;" (assignment_expression "pTVar4 = pTVar2->list_next_" identifier = (field_expression "pTVar2->list_next_" identifier -> field_identifier)) ;) (if_statement "if (pTVar2 == *(Task **)(pcVar27 + 0x10)) {\n            if (pTVar4 != (Task *)0x0) goto LAB_002d3a94;\n            pcVar27[0xc] = '\0';\n            pcVar27[0xd] = '\0';\n            pcVar27[0xe] = '\0';\n            pcVar27[0xf] = '\0';\n            pcVar27[0x10] = '\0';\n            pcVar27[0x11] = '\0';\n            pcVar27[0x12] = '\0';\n            pcVar27[0x13] = '\0';\n          }\n          else {\n            *(Task **)(pcVar27 + 0xc) = pTVar4;\n            if (pTVar4 == (Task *)0x0) goto LAB_002d3a5c;\n            pTVar2->list_next_ = (Task *)0x0;\n          }" if (parenthesized_expression "(pTVar2 == *(Task **)(pcVar27 + 0x10))" ( (binary_expression "pTVar2 == *(Task **)(pcVar27 + 0x10)" identifier == (pointer_expression "*(Task **)(pcVar27 + 0x10)" * (cast_expression "(Task **)(pcVar27 + 0x10)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x10)" ( (binary_expression "pcVar27 + 0x10" identifier + number_literal) ))))) )) (compound_statement "{\n            if (pTVar4 != (Task *)0x0) goto LAB_002d3a94;\n            pcVar27[0xc] = '\0';\n            pcVar27[0xd] = '\0';\n            pcVar27[0xe] = '\0';\n            pcVar27[0xf] = '\0';\n            pcVar27[0x10] = '\0';\n            pcVar27[0x11] = '\0';\n            pcVar27[0x12] = '\0';\n            pcVar27[0x13] = '\0';\n          }" { (if_statement "if (pTVar4 != (Task *)0x0) goto LAB_002d3a94;" if (parenthesized_expression "(pTVar4 != (Task *)0x0)" ( (binary_expression "pTVar4 != (Task *)0x0" identifier != (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_002d3a94;" goto statement_identifier ;)) (expression_statement "pcVar27[0xc] = '\0';" (assignment_expression "pcVar27[0xc] = '\0'" (subscript_expression "pcVar27[0xc]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar27[0xd] = '\0';" (assignment_expression "pcVar27[0xd] = '\0'" (subscript_expression "pcVar27[0xd]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar27[0xe] = '\0';" (assignment_expression "pcVar27[0xe] = '\0'" (subscript_expression "pcVar27[0xe]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar27[0xf] = '\0';" (assignment_expression "pcVar27[0xf] = '\0'" (subscript_expression "pcVar27[0xf]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar27[0x10] = '\0';" (assignment_expression "pcVar27[0x10] = '\0'" (subscript_expression "pcVar27[0x10]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar27[0x11] = '\0';" (assignment_expression "pcVar27[0x11] = '\0'" (subscript_expression "pcVar27[0x11]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar27[0x12] = '\0';" (assignment_expression "pcVar27[0x12] = '\0'" (subscript_expression "pcVar27[0x12]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar27[0x13] = '\0';" (assignment_expression "pcVar27[0x13] = '\0'" (subscript_expression "pcVar27[0x13]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) }) (else_clause "else {\n            *(Task **)(pcVar27 + 0xc) = pTVar4;\n            if (pTVar4 == (Task *)0x0) goto LAB_002d3a5c;\n            pTVar2->list_next_ = (Task *)0x0;\n          }" else (compound_statement "{\n            *(Task **)(pcVar27 + 0xc) = pTVar4;\n            if (pTVar4 == (Task *)0x0) goto LAB_002d3a5c;\n            pTVar2->list_next_ = (Task *)0x0;\n          }" { (expression_statement "*(Task **)(pcVar27 + 0xc) = pTVar4;" (assignment_expression "*(Task **)(pcVar27 + 0xc) = pTVar4" (pointer_expression "*(Task **)(pcVar27 + 0xc)" * (cast_expression "(Task **)(pcVar27 + 0xc)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0xc)" ( (binary_expression "pcVar27 + 0xc" identifier + number_literal) )))) = identifier) ;) (if_statement "if (pTVar4 == (Task *)0x0) goto LAB_002d3a5c;" if (parenthesized_expression "(pTVar4 == (Task *)0x0)" ( (binary_expression "pTVar4 == (Task *)0x0" identifier == (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_002d3a5c;" goto statement_identifier ;)) (expression_statement "pTVar2->list_next_ = (Task *)0x0;" (assignment_expression "pTVar2->list_next_ = (Task *)0x0" (field_expression "pTVar2->list_next_" identifier -> field_identifier) = (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (expression_statement "pWVar15->waiting_ = pWVar15->waiting_ + -1;" (assignment_expression "pWVar15->waiting_ = pWVar15->waiting_ + -1" (field_expression "pWVar15->waiting_" identifier -> field_identifier) = (binary_expression "pWVar15->waiting_ + -1" (field_expression "pWVar15->waiting_" identifier -> field_identifier) + number_literal)) ;) (expression_statement "bVar8 = return_or_queue(pWVar15,pTVar2,false,apTStack_48);" (assignment_expression "bVar8 = return_or_queue(pWVar15,pTVar2,false,apTStack_48)" identifier = (call_expression "return_or_queue(pWVar15,pTVar2,false,apTStack_48)" identifier (argument_list "(pWVar15,pTVar2,false,apTStack_48)" ( identifier , identifier , false , identifier )))) ;) }) while (parenthesized_expression "(CONCAT31(extraout_var,bVar8) == 0)" ( (binary_expression "CONCAT31(extraout_var,bVar8) == 0" (call_expression "CONCAT31(extraout_var,bVar8)" identifier (argument_list "(extraout_var,bVar8)" ( identifier , identifier ))) == number_literal) )) ;) (labeled_statement "LAB_002d398c:\n        iVar11 = *piVar24;" statement_identifier : (expression_statement "iVar11 = *piVar24;" (assignment_expression "iVar11 = *piVar24" identifier = (pointer_expression "*piVar24" * identifier)) ;)) (expression_statement "piVar28 = piVar28 + 1;" (assignment_expression "piVar28 = piVar28 + 1" identifier = (binary_expression "piVar28 + 1" identifier + number_literal)) ;) (if_statement "if (piVar28 == piVar24 + iVar11 + 1) {\n          return (bool)(char)apTStack_48[0];\n        }" if (parenthesized_expression "(piVar28 == piVar24 + iVar11 + 1)" ( (binary_expression "piVar28 == piVar24 + iVar11 + 1" identifier == (binary_expression "piVar24 + iVar11 + 1" (binary_expression "piVar24 + iVar11" identifier + identifier) + number_literal)) )) (compound_statement "{\n          return (bool)(char)apTStack_48[0];\n        }" { (return_statement "return (bool)(char)apTStack_48[0];" return (cast_expression "(bool)(char)apTStack_48[0]" ( (type_descriptor "bool" primitive_type) ) (cast_expression "(char)apTStack_48[0]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "apTStack_48[0]" identifier [ number_literal ]))) ;) })) })) (expression_statement "iVar7 = *(int *)(pcVar27 + 4) + -1;" (assignment_expression "iVar7 = *(int *)(pcVar27 + 4) + -1" identifier = (binary_expression "*(int *)(pcVar27 + 4) + -1" (pointer_expression "*(int *)(pcVar27 + 4)" * (cast_expression "(int *)(pcVar27 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 4)" ( (binary_expression "pcVar27 + 4" identifier + number_literal) )))) + number_literal)) ;) (if_statement "if (*(int *)(pcVar27 + 4) < 1) goto LAB_002d3a78;" if (parenthesized_expression "(*(int *)(pcVar27 + 4) < 1)" ( (binary_expression "*(int *)(pcVar27 + 4) < 1" (pointer_expression "*(int *)(pcVar27 + 4)" * (cast_expression "(int *)(pcVar27 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 4)" ( (binary_expression "pcVar27 + 4" identifier + number_literal) )))) < number_literal) )) (goto_statement "goto LAB_002d3a78;" goto statement_identifier ;)) (expression_statement "pcVar27[8] = '\0';" (assignment_expression "pcVar27[8] = '\0'" (subscript_expression "pcVar27[8]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar27[9] = '\0';" (assignment_expression "pcVar27[9] = '\0'" (subscript_expression "pcVar27[9]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar27[10] = '\0';" (assignment_expression "pcVar27[10] = '\0'" (subscript_expression "pcVar27[10]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar27[0xb] = '\0';" (assignment_expression "pcVar27[0xb] = '\0'" (subscript_expression "pcVar27[0xb]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "*(int *)(pcVar27 + 4) = iVar7;" (assignment_expression "*(int *)(pcVar27 + 4) = iVar7" (pointer_expression "*(int *)(pcVar27 + 4)" * (cast_expression "(int *)(pcVar27 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 4)" ( (binary_expression "pcVar27 + 4" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((iVar7 == 0) && (pTVar2 = *(Task **)(pcVar27 + 0xc), pTVar2 != (Task *)0x0)) {\n        pTVar4 = pTVar2->list_next_;\n        if (*(Task **)(pcVar27 + 0x10) == pTVar2) goto LAB_002d3a40;\n        while (*(Task **)(pcVar27 + 0xc) = pTVar4, pTVar4 != (Task *)0x0) {\n          pTVar2->list_next_ = (Task *)0x0;\n          while( true ) {\n            pWVar15->waiting_ = pWVar15->waiting_ + -1;\n            return_or_queue(pWVar15,pTVar2,true,apTStack_48);\n            pTVar2 = *(Task **)(pcVar27 + 0xc);\n            if (pTVar2 == (Task *)0x0) goto LAB_002d398c;\n            pTVar4 = pTVar2->list_next_;\n            if (*(Task **)(pcVar27 + 0x10) != pTVar2) break;\nLAB_002d3a40:\n            if (pTVar4 != (Task *)0x0) goto LAB_002d3a94;\n            pcVar27[0xc] = '\0';\n            pcVar27[0xd] = '\0';\n            pcVar27[0xe] = '\0';\n            pcVar27[0xf] = '\0';\n            pcVar27[0x10] = '\0';\n            pcVar27[0x11] = '\0';\n            pcVar27[0x12] = '\0';\n            pcVar27[0x13] = '\0';\n          }\n        }\nLAB_002d3a5c:\n        uVar29 = 0x5a;\n        do {\n          (**(code **)(puVar32 + 0x1ee1ac))\n                    (*(int *)(puVar32 + 0x1ee098) + 0x39bc,uVar29,\n                     *(int *)(puVar32 + 0x1ee098) + 0x3aa0);\nLAB_002d3a78:\n          (**(code **)(puVar32 + 0x1ee1ac))\n                    (*(int *)(puVar32 + 0x1ed9f8) + -0x7f8,0xa1,\n                     *(int *)(puVar32 + 0x1ee098) + 0x3a6c);\nLAB_002d3a94:\n          uVar29 = 0x53;\n        } while( true );\n      }" if (parenthesized_expression "((iVar7 == 0) && (pTVar2 = *(Task **)(pcVar27 + 0xc), pTVar2 != (Task *)0x0))" ( (binary_expression "(iVar7 == 0) && (pTVar2 = *(Task **)(pcVar27 + 0xc), pTVar2 != (Task *)0x0)" (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) && (parenthesized_expression "(pTVar2 = *(Task **)(pcVar27 + 0xc), pTVar2 != (Task *)0x0)" ( (comma_expression "pTVar2 = *(Task **)(pcVar27 + 0xc), pTVar2 != (Task *)0x0" (assignment_expression "pTVar2 = *(Task **)(pcVar27 + 0xc)" identifier = (pointer_expression "*(Task **)(pcVar27 + 0xc)" * (cast_expression "(Task **)(pcVar27 + 0xc)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0xc)" ( (binary_expression "pcVar27 + 0xc" identifier + number_literal) ))))) , (binary_expression "pTVar2 != (Task *)0x0" identifier != (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n        pTVar4 = pTVar2->list_next_;\n        if (*(Task **)(pcVar27 + 0x10) == pTVar2) goto LAB_002d3a40;\n        while (*(Task **)(pcVar27 + 0xc) = pTVar4, pTVar4 != (Task *)0x0) {\n          pTVar2->list_next_ = (Task *)0x0;\n          while( true ) {\n            pWVar15->waiting_ = pWVar15->waiting_ + -1;\n            return_or_queue(pWVar15,pTVar2,true,apTStack_48);\n            pTVar2 = *(Task **)(pcVar27 + 0xc);\n            if (pTVar2 == (Task *)0x0) goto LAB_002d398c;\n            pTVar4 = pTVar2->list_next_;\n            if (*(Task **)(pcVar27 + 0x10) != pTVar2) break;\nLAB_002d3a40:\n            if (pTVar4 != (Task *)0x0) goto LAB_002d3a94;\n            pcVar27[0xc] = '\0';\n            pcVar27[0xd] = '\0';\n            pcVar27[0xe] = '\0';\n            pcVar27[0xf] = '\0';\n            pcVar27[0x10] = '\0';\n            pcVar27[0x11] = '\0';\n            pcVar27[0x12] = '\0';\n            pcVar27[0x13] = '\0';\n          }\n        }\nLAB_002d3a5c:\n        uVar29 = 0x5a;\n        do {\n          (**(code **)(puVar32 + 0x1ee1ac))\n                    (*(int *)(puVar32 + 0x1ee098) + 0x39bc,uVar29,\n                     *(int *)(puVar32 + 0x1ee098) + 0x3aa0);\nLAB_002d3a78:\n          (**(code **)(puVar32 + 0x1ee1ac))\n                    (*(int *)(puVar32 + 0x1ed9f8) + -0x7f8,0xa1,\n                     *(int *)(puVar32 + 0x1ee098) + 0x3a6c);\nLAB_002d3a94:\n          uVar29 = 0x53;\n        } while( true );\n      }" { (expression_statement "pTVar4 = pTVar2->list_next_;" (assignment_expression "pTVar4 = pTVar2->list_next_" identifier = (field_expression "pTVar2->list_next_" identifier -> field_identifier)) ;) (if_statement "if (*(Task **)(pcVar27 + 0x10) == pTVar2) goto LAB_002d3a40;" if (parenthesized_expression "(*(Task **)(pcVar27 + 0x10) == pTVar2)" ( (binary_expression "*(Task **)(pcVar27 + 0x10) == pTVar2" (pointer_expression "*(Task **)(pcVar27 + 0x10)" * (cast_expression "(Task **)(pcVar27 + 0x10)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x10)" ( (binary_expression "pcVar27 + 0x10" identifier + number_literal) )))) == identifier) )) (goto_statement "goto LAB_002d3a40;" goto statement_identifier ;)) (while_statement "while (*(Task **)(pcVar27 + 0xc) = pTVar4, pTVar4 != (Task *)0x0) {\n          pTVar2->list_next_ = (Task *)0x0;\n          while( true ) {\n            pWVar15->waiting_ = pWVar15->waiting_ + -1;\n            return_or_queue(pWVar15,pTVar2,true,apTStack_48);\n            pTVar2 = *(Task **)(pcVar27 + 0xc);\n            if (pTVar2 == (Task *)0x0) goto LAB_002d398c;\n            pTVar4 = pTVar2->list_next_;\n            if (*(Task **)(pcVar27 + 0x10) != pTVar2) break;\nLAB_002d3a40:\n            if (pTVar4 != (Task *)0x0) goto LAB_002d3a94;\n            pcVar27[0xc] = '\0';\n            pcVar27[0xd] = '\0';\n            pcVar27[0xe] = '\0';\n            pcVar27[0xf] = '\0';\n            pcVar27[0x10] = '\0';\n            pcVar27[0x11] = '\0';\n            pcVar27[0x12] = '\0';\n            pcVar27[0x13] = '\0';\n          }\n        }" while (parenthesized_expression "(*(Task **)(pcVar27 + 0xc) = pTVar4, pTVar4 != (Task *)0x0)" ( (comma_expression "*(Task **)(pcVar27 + 0xc) = pTVar4, pTVar4 != (Task *)0x0" (assignment_expression "*(Task **)(pcVar27 + 0xc) = pTVar4" (pointer_expression "*(Task **)(pcVar27 + 0xc)" * (cast_expression "(Task **)(pcVar27 + 0xc)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0xc)" ( (binary_expression "pcVar27 + 0xc" identifier + number_literal) )))) = identifier) , (binary_expression "pTVar4 != (Task *)0x0" identifier != (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n          pTVar2->list_next_ = (Task *)0x0;\n          while( true ) {\n            pWVar15->waiting_ = pWVar15->waiting_ + -1;\n            return_or_queue(pWVar15,pTVar2,true,apTStack_48);\n            pTVar2 = *(Task **)(pcVar27 + 0xc);\n            if (pTVar2 == (Task *)0x0) goto LAB_002d398c;\n            pTVar4 = pTVar2->list_next_;\n            if (*(Task **)(pcVar27 + 0x10) != pTVar2) break;\nLAB_002d3a40:\n            if (pTVar4 != (Task *)0x0) goto LAB_002d3a94;\n            pcVar27[0xc] = '\0';\n            pcVar27[0xd] = '\0';\n            pcVar27[0xe] = '\0';\n            pcVar27[0xf] = '\0';\n            pcVar27[0x10] = '\0';\n            pcVar27[0x11] = '\0';\n            pcVar27[0x12] = '\0';\n            pcVar27[0x13] = '\0';\n          }\n        }" { (expression_statement "pTVar2->list_next_ = (Task *)0x0;" (assignment_expression "pTVar2->list_next_ = (Task *)0x0" (field_expression "pTVar2->list_next_" identifier -> field_identifier) = (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (while_statement "while( true ) {\n            pWVar15->waiting_ = pWVar15->waiting_ + -1;\n            return_or_queue(pWVar15,pTVar2,true,apTStack_48);\n            pTVar2 = *(Task **)(pcVar27 + 0xc);\n            if (pTVar2 == (Task *)0x0) goto LAB_002d398c;\n            pTVar4 = pTVar2->list_next_;\n            if (*(Task **)(pcVar27 + 0x10) != pTVar2) break;\nLAB_002d3a40:\n            if (pTVar4 != (Task *)0x0) goto LAB_002d3a94;\n            pcVar27[0xc] = '\0';\n            pcVar27[0xd] = '\0';\n            pcVar27[0xe] = '\0';\n            pcVar27[0xf] = '\0';\n            pcVar27[0x10] = '\0';\n            pcVar27[0x11] = '\0';\n            pcVar27[0x12] = '\0';\n            pcVar27[0x13] = '\0';\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            pWVar15->waiting_ = pWVar15->waiting_ + -1;\n            return_or_queue(pWVar15,pTVar2,true,apTStack_48);\n            pTVar2 = *(Task **)(pcVar27 + 0xc);\n            if (pTVar2 == (Task *)0x0) goto LAB_002d398c;\n            pTVar4 = pTVar2->list_next_;\n            if (*(Task **)(pcVar27 + 0x10) != pTVar2) break;\nLAB_002d3a40:\n            if (pTVar4 != (Task *)0x0) goto LAB_002d3a94;\n            pcVar27[0xc] = '\0';\n            pcVar27[0xd] = '\0';\n            pcVar27[0xe] = '\0';\n            pcVar27[0xf] = '\0';\n            pcVar27[0x10] = '\0';\n            pcVar27[0x11] = '\0';\n            pcVar27[0x12] = '\0';\n            pcVar27[0x13] = '\0';\n          }" { (expression_statement "pWVar15->waiting_ = pWVar15->waiting_ + -1;" (assignment_expression "pWVar15->waiting_ = pWVar15->waiting_ + -1" (field_expression "pWVar15->waiting_" identifier -> field_identifier) = (binary_expression "pWVar15->waiting_ + -1" (field_expression "pWVar15->waiting_" identifier -> field_identifier) + number_literal)) ;) (expression_statement "return_or_queue(pWVar15,pTVar2,true,apTStack_48);" (call_expression "return_or_queue(pWVar15,pTVar2,true,apTStack_48)" identifier (argument_list "(pWVar15,pTVar2,true,apTStack_48)" ( identifier , identifier , true , identifier ))) ;) (expression_statement "pTVar2 = *(Task **)(pcVar27 + 0xc);" (assignment_expression "pTVar2 = *(Task **)(pcVar27 + 0xc)" identifier = (pointer_expression "*(Task **)(pcVar27 + 0xc)" * (cast_expression "(Task **)(pcVar27 + 0xc)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0xc)" ( (binary_expression "pcVar27 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (pTVar2 == (Task *)0x0) goto LAB_002d398c;" if (parenthesized_expression "(pTVar2 == (Task *)0x0)" ( (binary_expression "pTVar2 == (Task *)0x0" identifier == (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_002d398c;" goto statement_identifier ;)) (expression_statement "pTVar4 = pTVar2->list_next_;" (assignment_expression "pTVar4 = pTVar2->list_next_" identifier = (field_expression "pTVar2->list_next_" identifier -> field_identifier)) ;) (if_statement "if (*(Task **)(pcVar27 + 0x10) != pTVar2) break;" if (parenthesized_expression "(*(Task **)(pcVar27 + 0x10) != pTVar2)" ( (binary_expression "*(Task **)(pcVar27 + 0x10) != pTVar2" (pointer_expression "*(Task **)(pcVar27 + 0x10)" * (cast_expression "(Task **)(pcVar27 + 0x10)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar27 + 0x10)" ( (binary_expression "pcVar27 + 0x10" identifier + number_literal) )))) != identifier) )) (break_statement "break;" break ;)) (labeled_statement "LAB_002d3a40:\n            if (pTVar4 != (Task *)0x0) goto LAB_002d3a94;" statement_identifier : (if_statement "if (pTVar4 != (Task *)0x0) goto LAB_002d3a94;" if (parenthesized_expression "(pTVar4 != (Task *)0x0)" ( (binary_expression "pTVar4 != (Task *)0x0" identifier != (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_002d3a94;" goto statement_identifier ;))) (expression_statement "pcVar27[0xc] = '\0';" (assignment_expression "pcVar27[0xc] = '\0'" (subscript_expression "pcVar27[0xc]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar27[0xd] = '\0';" (assignment_expression "pcVar27[0xd] = '\0'" (subscript_expression "pcVar27[0xd]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar27[0xe] = '\0';" (assignment_expression "pcVar27[0xe] = '\0'" (subscript_expression "pcVar27[0xe]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar27[0xf] = '\0';" (assignment_expression "pcVar27[0xf] = '\0'" (subscript_expression "pcVar27[0xf]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar27[0x10] = '\0';" (assignment_expression "pcVar27[0x10] = '\0'" (subscript_expression "pcVar27[0x10]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar27[0x11] = '\0';" (assignment_expression "pcVar27[0x11] = '\0'" (subscript_expression "pcVar27[0x11]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar27[0x12] = '\0';" (assignment_expression "pcVar27[0x12] = '\0'" (subscript_expression "pcVar27[0x12]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar27[0x13] = '\0';" (assignment_expression "pcVar27[0x13] = '\0'" (subscript_expression "pcVar27[0x13]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) })) })) (labeled_statement "LAB_002d3a5c:\n        uVar29 = 0x5a;" statement_identifier : (expression_statement "uVar29 = 0x5a;" (assignment_expression "uVar29 = 0x5a" identifier = number_literal) ;)) (do_statement "do {\n          (**(code **)(puVar32 + 0x1ee1ac))\n                    (*(int *)(puVar32 + 0x1ee098) + 0x39bc,uVar29,\n                     *(int *)(puVar32 + 0x1ee098) + 0x3aa0);\nLAB_002d3a78:\n          (**(code **)(puVar32 + 0x1ee1ac))\n                    (*(int *)(puVar32 + 0x1ed9f8) + -0x7f8,0xa1,\n                     *(int *)(puVar32 + 0x1ee098) + 0x3a6c);\nLAB_002d3a94:\n          uVar29 = 0x53;\n        } while( true );" do (compound_statement "{\n          (**(code **)(puVar32 + 0x1ee1ac))\n                    (*(int *)(puVar32 + 0x1ee098) + 0x39bc,uVar29,\n                     *(int *)(puVar32 + 0x1ee098) + 0x3aa0);\nLAB_002d3a78:\n          (**(code **)(puVar32 + 0x1ee1ac))\n                    (*(int *)(puVar32 + 0x1ed9f8) + -0x7f8,0xa1,\n                     *(int *)(puVar32 + 0x1ee098) + 0x3a6c);\nLAB_002d3a94:\n          uVar29 = 0x53;\n        }" { (expression_statement "(**(code **)(puVar32 + 0x1ee1ac))\n                    (*(int *)(puVar32 + 0x1ee098) + 0x39bc,uVar29,\n                     *(int *)(puVar32 + 0x1ee098) + 0x3aa0);" (call_expression "(**(code **)(puVar32 + 0x1ee1ac))\n                    (*(int *)(puVar32 + 0x1ee098) + 0x39bc,uVar29,\n                     *(int *)(puVar32 + 0x1ee098) + 0x3aa0)" (parenthesized_expression "(**(code **)(puVar32 + 0x1ee1ac))" ( (pointer_expression "**(code **)(puVar32 + 0x1ee1ac)" * (pointer_expression "*(code **)(puVar32 + 0x1ee1ac)" * (cast_expression "(code **)(puVar32 + 0x1ee1ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar32 + 0x1ee1ac)" ( (binary_expression "puVar32 + 0x1ee1ac" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar32 + 0x1ee098) + 0x39bc,uVar29,\n                     *(int *)(puVar32 + 0x1ee098) + 0x3aa0)" ( (binary_expression "*(int *)(puVar32 + 0x1ee098) + 0x39bc" (pointer_expression "*(int *)(puVar32 + 0x1ee098)" * (cast_expression "(int *)(puVar32 + 0x1ee098)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x1ee098)" ( (binary_expression "puVar32 + 0x1ee098" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(puVar32 + 0x1ee098) + 0x3aa0" (pointer_expression "*(int *)(puVar32 + 0x1ee098)" * (cast_expression "(int *)(puVar32 + 0x1ee098)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x1ee098)" ( (binary_expression "puVar32 + 0x1ee098" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_002d3a78:\n          (**(code **)(puVar32 + 0x1ee1ac))\n                    (*(int *)(puVar32 + 0x1ed9f8) + -0x7f8,0xa1,\n                     *(int *)(puVar32 + 0x1ee098) + 0x3a6c);" statement_identifier : (expression_statement "(**(code **)(puVar32 + 0x1ee1ac))\n                    (*(int *)(puVar32 + 0x1ed9f8) + -0x7f8,0xa1,\n                     *(int *)(puVar32 + 0x1ee098) + 0x3a6c);" (call_expression "(**(code **)(puVar32 + 0x1ee1ac))\n                    (*(int *)(puVar32 + 0x1ed9f8) + -0x7f8,0xa1,\n                     *(int *)(puVar32 + 0x1ee098) + 0x3a6c)" (parenthesized_expression "(**(code **)(puVar32 + 0x1ee1ac))" ( (pointer_expression "**(code **)(puVar32 + 0x1ee1ac)" * (pointer_expression "*(code **)(puVar32 + 0x1ee1ac)" * (cast_expression "(code **)(puVar32 + 0x1ee1ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar32 + 0x1ee1ac)" ( (binary_expression "puVar32 + 0x1ee1ac" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar32 + 0x1ed9f8) + -0x7f8,0xa1,\n                     *(int *)(puVar32 + 0x1ee098) + 0x3a6c)" ( (binary_expression "*(int *)(puVar32 + 0x1ed9f8) + -0x7f8" (pointer_expression "*(int *)(puVar32 + 0x1ed9f8)" * (cast_expression "(int *)(puVar32 + 0x1ed9f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x1ed9f8)" ( (binary_expression "puVar32 + 0x1ed9f8" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar32 + 0x1ee098) + 0x3a6c" (pointer_expression "*(int *)(puVar32 + 0x1ee098)" * (cast_expression "(int *)(puVar32 + 0x1ee098)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar32 + 0x1ee098)" ( (binary_expression "puVar32 + 0x1ee098" identifier + number_literal) )))) + number_literal) ))) ;)) (labeled_statement "LAB_002d3a94:\n          uVar29 = 0x53;" statement_identifier : (expression_statement "uVar29 = 0x53;" (assignment_expression "uVar29 = 0x53" identifier = number_literal) ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "piVar28 = piVar28 + 1;" (assignment_expression "piVar28 = piVar28 + 1" identifier = (binary_expression "piVar28 + 1" identifier + number_literal)) ;) (expression_statement "uVar9 = SUB41(apTStack_48[0],0);" (assignment_expression "uVar9 = SUB41(apTStack_48[0],0)" identifier = (call_expression "SUB41(apTStack_48[0],0)" identifier (argument_list "(apTStack_48[0],0)" ( (subscript_expression "apTStack_48[0]" identifier [ number_literal ]) , number_literal )))) ;) }) while (parenthesized_expression "(piVar28 != piVar24 + iVar11 + 1)" ( (binary_expression "piVar28 != piVar24 + iVar11 + 1" identifier != (binary_expression "piVar24 + iVar11 + 1" (binary_expression "piVar24 + iVar11" identifier + identifier) + number_literal)) )) ;) }))) (return_statement "return (bool)uVar9;" return (cast_expression "(bool)uVar9" ( (type_descriptor "bool" primitive_type) ) identifier) ;) (labeled_statement "LAB_002d3eac:\n  puVar16 = (undefined4 *)*piVar24;" statement_identifier : (expression_statement "puVar16 = (undefined4 *)*piVar24;" (assignment_expression "puVar16 = (undefined4 *)*piVar24" identifier = (cast_expression "(undefined4 *)*piVar24" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar24" * identifier))) ;)) (if_statement "if ((puVar16[2] != 0) && ((puVar16[5] & 1) != 0)) {\n    uVar29 = *puVar16;\n    if ((pTVar2->name_)._M_string_length == 0) {\n      if (pTVar2->_vptr_Task[5] == p_Stack_f4) {\n        pcVar23 = pTVar2[1].name_._M_dataplus._M_p;\n        TStack_168.start_time_.user = (long)plStack_fc;\n        if (pcVar23 == (pointer)0x0) {\n          pcVar25 = (pointer)0xffffffff;\n        }\n        else {\n          pcStack_f0 = pcVar23;\n          iVar7 = (**(code **)(pcVar33 + 0x1f1f30))(pcVar23);\n          pcVar25 = pcStack_f0 + iVar7;\n          pcVar23 = pcStack_f0;\n        }\n        (**(code **)(pcVar33 + 0x1edefc))(&TStack_168,pcVar23,pcVar25,0);\n      }\n      else {\n        (*pTVar2->_vptr_Task[5])(&TStack_168,pTVar2);\n      }\n      plVar20 = (long *)(pTVar2->name_)._M_dataplus._M_p;\n      if ((long *)TStack_168.start_time_.user == plStack_fc) {\n        if (TStack_168.start_time_.sys != 0) {\n          if (TStack_168.start_time_.sys == 1) {\n            *(char *)plVar20 = TStack_168.start_time_.wall._0_1_;\n            plVar20 = (long *)(pTVar2->name_)._M_dataplus._M_p;\n          }\n          else {\n            (**(code **)(pcVar33 + 0x1f1f3c))(plVar20,plStack_fc);\n            plVar20 = (long *)(pTVar2->name_)._M_dataplus._M_p;\n          }\n        }\n        (pTVar2->name_)._M_string_length = TStack_168.start_time_.sys;\n        *(char *)((int)plVar20 + TStack_168.start_time_.sys) = '\0';\n        sVar10 = TStack_168.start_time_.wall;\n      }\n      else {\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)plVar20 == &(pTVar2->name_).field_2) {\n          (pTVar2->name_)._M_dataplus._M_p = (pointer)TStack_168.start_time_.user;\n          (pTVar2->name_)._M_string_length = TStack_168.start_time_.sys;\n          (pTVar2->name_).field_2._M_allocated_capacity = TStack_168.start_time_.wall;\n        }\n        else {\n          sVar10 = (pTVar2->name_).field_2._M_allocated_capacity;\n          (pTVar2->name_)._M_dataplus._M_p = (pointer)TStack_168.start_time_.user;\n          (pTVar2->name_)._M_string_length = TStack_168.start_time_.sys;\n          (pTVar2->name_).field_2._M_allocated_capacity = TStack_168.start_time_.wall;\n          TStack_168.start_time_.user = (long)plVar20;\n          if (plVar20 != (long *)0x0) goto LAB_002d3f6c;\n        }\n        TStack_168.start_time_.user = (long)plStack_fc;\n        sVar10 = TStack_168.start_time_.wall;\n      }\nLAB_002d3f6c:\n      TStack_168.start_time_.wall = sVar10;\n      TStack_168.start_time_.sys = 0;\n      *(char *)TStack_168.start_time_.user = '\0';\n      if ((long *)TStack_168.start_time_.user != plStack_fc) {\n        (**(code **)(pcVar33 + 0x1ed690))();\n      }\n    }\n    (**(code **)(pcVar33 + 0x1ee3ac))(uVar29,iStack_f8,iVar11,(pTVar2->name_)._M_dataplus._M_p);\n  }" if (parenthesized_expression "((puVar16[2] != 0) && ((puVar16[5] & 1) != 0))" ( (binary_expression "(puVar16[2] != 0) && ((puVar16[5] & 1) != 0)" (parenthesized_expression "(puVar16[2] != 0)" ( (binary_expression "puVar16[2] != 0" (subscript_expression "puVar16[2]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "((puVar16[5] & 1) != 0)" ( (binary_expression "(puVar16[5] & 1) != 0" (parenthesized_expression "(puVar16[5] & 1)" ( (binary_expression "puVar16[5] & 1" (subscript_expression "puVar16[5]" identifier [ number_literal ]) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    uVar29 = *puVar16;\n    if ((pTVar2->name_)._M_string_length == 0) {\n      if (pTVar2->_vptr_Task[5] == p_Stack_f4) {\n        pcVar23 = pTVar2[1].name_._M_dataplus._M_p;\n        TStack_168.start_time_.user = (long)plStack_fc;\n        if (pcVar23 == (pointer)0x0) {\n          pcVar25 = (pointer)0xffffffff;\n        }\n        else {\n          pcStack_f0 = pcVar23;\n          iVar7 = (**(code **)(pcVar33 + 0x1f1f30))(pcVar23);\n          pcVar25 = pcStack_f0 + iVar7;\n          pcVar23 = pcStack_f0;\n        }\n        (**(code **)(pcVar33 + 0x1edefc))(&TStack_168,pcVar23,pcVar25,0);\n      }\n      else {\n        (*pTVar2->_vptr_Task[5])(&TStack_168,pTVar2);\n      }\n      plVar20 = (long *)(pTVar2->name_)._M_dataplus._M_p;\n      if ((long *)TStack_168.start_time_.user == plStack_fc) {\n        if (TStack_168.start_time_.sys != 0) {\n          if (TStack_168.start_time_.sys == 1) {\n            *(char *)plVar20 = TStack_168.start_time_.wall._0_1_;\n            plVar20 = (long *)(pTVar2->name_)._M_dataplus._M_p;\n          }\n          else {\n            (**(code **)(pcVar33 + 0x1f1f3c))(plVar20,plStack_fc);\n            plVar20 = (long *)(pTVar2->name_)._M_dataplus._M_p;\n          }\n        }\n        (pTVar2->name_)._M_string_length = TStack_168.start_time_.sys;\n        *(char *)((int)plVar20 + TStack_168.start_time_.sys) = '\0';\n        sVar10 = TStack_168.start_time_.wall;\n      }\n      else {\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)plVar20 == &(pTVar2->name_).field_2) {\n          (pTVar2->name_)._M_dataplus._M_p = (pointer)TStack_168.start_time_.user;\n          (pTVar2->name_)._M_string_length = TStack_168.start_time_.sys;\n          (pTVar2->name_).field_2._M_allocated_capacity = TStack_168.start_time_.wall;\n        }\n        else {\n          sVar10 = (pTVar2->name_).field_2._M_allocated_capacity;\n          (pTVar2->name_)._M_dataplus._M_p = (pointer)TStack_168.start_time_.user;\n          (pTVar2->name_)._M_string_length = TStack_168.start_time_.sys;\n          (pTVar2->name_).field_2._M_allocated_capacity = TStack_168.start_time_.wall;\n          TStack_168.start_time_.user = (long)plVar20;\n          if (plVar20 != (long *)0x0) goto LAB_002d3f6c;\n        }\n        TStack_168.start_time_.user = (long)plStack_fc;\n        sVar10 = TStack_168.start_time_.wall;\n      }\nLAB_002d3f6c:\n      TStack_168.start_time_.wall = sVar10;\n      TStack_168.start_time_.sys = 0;\n      *(char *)TStack_168.start_time_.user = '\0';\n      if ((long *)TStack_168.start_time_.user != plStack_fc) {\n        (**(code **)(pcVar33 + 0x1ed690))();\n      }\n    }\n    (**(code **)(pcVar33 + 0x1ee3ac))(uVar29,iStack_f8,iVar11,(pTVar2->name_)._M_dataplus._M_p);\n  }" { (expression_statement "uVar29 = *puVar16;" (assignment_expression "uVar29 = *puVar16" identifier = (pointer_expression "*puVar16" * identifier)) ;) (if_statement "if ((pTVar2->name_)._M_string_length == 0) {\n      if (pTVar2->_vptr_Task[5] == p_Stack_f4) {\n        pcVar23 = pTVar2[1].name_._M_dataplus._M_p;\n        TStack_168.start_time_.user = (long)plStack_fc;\n        if (pcVar23 == (pointer)0x0) {\n          pcVar25 = (pointer)0xffffffff;\n        }\n        else {\n          pcStack_f0 = pcVar23;\n          iVar7 = (**(code **)(pcVar33 + 0x1f1f30))(pcVar23);\n          pcVar25 = pcStack_f0 + iVar7;\n          pcVar23 = pcStack_f0;\n        }\n        (**(code **)(pcVar33 + 0x1edefc))(&TStack_168,pcVar23,pcVar25,0);\n      }\n      else {\n        (*pTVar2->_vptr_Task[5])(&TStack_168,pTVar2);\n      }\n      plVar20 = (long *)(pTVar2->name_)._M_dataplus._M_p;\n      if ((long *)TStack_168.start_time_.user == plStack_fc) {\n        if (TStack_168.start_time_.sys != 0) {\n          if (TStack_168.start_time_.sys == 1) {\n            *(char *)plVar20 = TStack_168.start_time_.wall._0_1_;\n            plVar20 = (long *)(pTVar2->name_)._M_dataplus._M_p;\n          }\n          else {\n            (**(code **)(pcVar33 + 0x1f1f3c))(plVar20,plStack_fc);\n            plVar20 = (long *)(pTVar2->name_)._M_dataplus._M_p;\n          }\n        }\n        (pTVar2->name_)._M_string_length = TStack_168.start_time_.sys;\n        *(char *)((int)plVar20 + TStack_168.start_time_.sys) = '\0';\n        sVar10 = TStack_168.start_time_.wall;\n      }\n      else {\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)plVar20 == &(pTVar2->name_).field_2) {\n          (pTVar2->name_)._M_dataplus._M_p = (pointer)TStack_168.start_time_.user;\n          (pTVar2->name_)._M_string_length = TStack_168.start_time_.sys;\n          (pTVar2->name_).field_2._M_allocated_capacity = TStack_168.start_time_.wall;\n        }\n        else {\n          sVar10 = (pTVar2->name_).field_2._M_allocated_capacity;\n          (pTVar2->name_)._M_dataplus._M_p = (pointer)TStack_168.start_time_.user;\n          (pTVar2->name_)._M_string_length = TStack_168.start_time_.sys;\n          (pTVar2->name_).field_2._M_allocated_capacity = TStack_168.start_time_.wall;\n          TStack_168.start_time_.user = (long)plVar20;\n          if (plVar20 != (long *)0x0) goto LAB_002d3f6c;\n        }\n        TStack_168.start_time_.user = (long)plStack_fc;\n        sVar10 = TStack_168.start_time_.wall;\n      }\nLAB_002d3f6c:\n      TStack_168.start_time_.wall = sVar10;\n      TStack_168.start_time_.sys = 0;\n      *(char *)TStack_168.start_time_.user = '\0';\n      if ((long *)TStack_168.start_time_.user != plStack_fc) {\n        (**(code **)(pcVar33 + 0x1ed690))();\n      }\n    }" if (parenthesized_expression "((pTVar2->name_)._M_string_length == 0)" ( (binary_expression "(pTVar2->name_)._M_string_length == 0" (field_expression "(pTVar2->name_)._M_string_length" (parenthesized_expression "(pTVar2->name_)" ( (field_expression "pTVar2->name_" identifier -> field_identifier) )) . field_identifier) == number_literal) )) (compound_statement "{\n      if (pTVar2->_vptr_Task[5] == p_Stack_f4) {\n        pcVar23 = pTVar2[1].name_._M_dataplus._M_p;\n        TStack_168.start_time_.user = (long)plStack_fc;\n        if (pcVar23 == (pointer)0x0) {\n          pcVar25 = (pointer)0xffffffff;\n        }\n        else {\n          pcStack_f0 = pcVar23;\n          iVar7 = (**(code **)(pcVar33 + 0x1f1f30))(pcVar23);\n          pcVar25 = pcStack_f0 + iVar7;\n          pcVar23 = pcStack_f0;\n        }\n        (**(code **)(pcVar33 + 0x1edefc))(&TStack_168,pcVar23,pcVar25,0);\n      }\n      else {\n        (*pTVar2->_vptr_Task[5])(&TStack_168,pTVar2);\n      }\n      plVar20 = (long *)(pTVar2->name_)._M_dataplus._M_p;\n      if ((long *)TStack_168.start_time_.user == plStack_fc) {\n        if (TStack_168.start_time_.sys != 0) {\n          if (TStack_168.start_time_.sys == 1) {\n            *(char *)plVar20 = TStack_168.start_time_.wall._0_1_;\n            plVar20 = (long *)(pTVar2->name_)._M_dataplus._M_p;\n          }\n          else {\n            (**(code **)(pcVar33 + 0x1f1f3c))(plVar20,plStack_fc);\n            plVar20 = (long *)(pTVar2->name_)._M_dataplus._M_p;\n          }\n        }\n        (pTVar2->name_)._M_string_length = TStack_168.start_time_.sys;\n        *(char *)((int)plVar20 + TStack_168.start_time_.sys) = '\0';\n        sVar10 = TStack_168.start_time_.wall;\n      }\n      else {\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)plVar20 == &(pTVar2->name_).field_2) {\n          (pTVar2->name_)._M_dataplus._M_p = (pointer)TStack_168.start_time_.user;\n          (pTVar2->name_)._M_string_length = TStack_168.start_time_.sys;\n          (pTVar2->name_).field_2._M_allocated_capacity = TStack_168.start_time_.wall;\n        }\n        else {\n          sVar10 = (pTVar2->name_).field_2._M_allocated_capacity;\n          (pTVar2->name_)._M_dataplus._M_p = (pointer)TStack_168.start_time_.user;\n          (pTVar2->name_)._M_string_length = TStack_168.start_time_.sys;\n          (pTVar2->name_).field_2._M_allocated_capacity = TStack_168.start_time_.wall;\n          TStack_168.start_time_.user = (long)plVar20;\n          if (plVar20 != (long *)0x0) goto LAB_002d3f6c;\n        }\n        TStack_168.start_time_.user = (long)plStack_fc;\n        sVar10 = TStack_168.start_time_.wall;\n      }\nLAB_002d3f6c:\n      TStack_168.start_time_.wall = sVar10;\n      TStack_168.start_time_.sys = 0;\n      *(char *)TStack_168.start_time_.user = '\0';\n      if ((long *)TStack_168.start_time_.user != plStack_fc) {\n        (**(code **)(pcVar33 + 0x1ed690))();\n      }\n    }" { (if_statement "if (pTVar2->_vptr_Task[5] == p_Stack_f4) {\n        pcVar23 = pTVar2[1].name_._M_dataplus._M_p;\n        TStack_168.start_time_.user = (long)plStack_fc;\n        if (pcVar23 == (pointer)0x0) {\n          pcVar25 = (pointer)0xffffffff;\n        }\n        else {\n          pcStack_f0 = pcVar23;\n          iVar7 = (**(code **)(pcVar33 + 0x1f1f30))(pcVar23);\n          pcVar25 = pcStack_f0 + iVar7;\n          pcVar23 = pcStack_f0;\n        }\n        (**(code **)(pcVar33 + 0x1edefc))(&TStack_168,pcVar23,pcVar25,0);\n      }\n      else {\n        (*pTVar2->_vptr_Task[5])(&TStack_168,pTVar2);\n      }" if (parenthesized_expression "(pTVar2->_vptr_Task[5] == p_Stack_f4)" ( (binary_expression "pTVar2->_vptr_Task[5] == p_Stack_f4" (subscript_expression "pTVar2->_vptr_Task[5]" (field_expression "pTVar2->_vptr_Task" identifier -> field_identifier) [ number_literal ]) == identifier) )) (compound_statement "{\n        pcVar23 = pTVar2[1].name_._M_dataplus._M_p;\n        TStack_168.start_time_.user = (long)plStack_fc;\n        if (pcVar23 == (pointer)0x0) {\n          pcVar25 = (pointer)0xffffffff;\n        }\n        else {\n          pcStack_f0 = pcVar23;\n          iVar7 = (**(code **)(pcVar33 + 0x1f1f30))(pcVar23);\n          pcVar25 = pcStack_f0 + iVar7;\n          pcVar23 = pcStack_f0;\n        }\n        (**(code **)(pcVar33 + 0x1edefc))(&TStack_168,pcVar23,pcVar25,0);\n      }" { (expression_statement "pcVar23 = pTVar2[1].name_._M_dataplus._M_p;" (assignment_expression "pcVar23 = pTVar2[1].name_._M_dataplus._M_p" identifier = (field_expression "pTVar2[1].name_._M_dataplus._M_p" (field_expression "pTVar2[1].name_._M_dataplus" (field_expression "pTVar2[1].name_" (subscript_expression "pTVar2[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "TStack_168.start_time_.user = (long)plStack_fc;" (assignment_expression "TStack_168.start_time_.user = (long)plStack_fc" (field_expression "TStack_168.start_time_.user" (field_expression "TStack_168.start_time_" identifier . field_identifier) . field_identifier) = (cast_expression "(long)plStack_fc" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (if_statement "if (pcVar23 == (pointer)0x0) {\n          pcVar25 = (pointer)0xffffffff;\n        }\n        else {\n          pcStack_f0 = pcVar23;\n          iVar7 = (**(code **)(pcVar33 + 0x1f1f30))(pcVar23);\n          pcVar25 = pcStack_f0 + iVar7;\n          pcVar23 = pcStack_f0;\n        }" if (parenthesized_expression "(pcVar23 == (pointer)0x0)" ( (binary_expression "pcVar23 == (pointer)0x0" identifier == (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) (compound_statement "{\n          pcVar25 = (pointer)0xffffffff;\n        }" { (expression_statement "pcVar25 = (pointer)0xffffffff;" (assignment_expression "pcVar25 = (pointer)0xffffffff" identifier = (cast_expression "(pointer)0xffffffff" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) }) (else_clause "else {\n          pcStack_f0 = pcVar23;\n          iVar7 = (**(code **)(pcVar33 + 0x1f1f30))(pcVar23);\n          pcVar25 = pcStack_f0 + iVar7;\n          pcVar23 = pcStack_f0;\n        }" else (compound_statement "{\n          pcStack_f0 = pcVar23;\n          iVar7 = (**(code **)(pcVar33 + 0x1f1f30))(pcVar23);\n          pcVar25 = pcStack_f0 + iVar7;\n          pcVar23 = pcStack_f0;\n        }" { (expression_statement "pcStack_f0 = pcVar23;" (assignment_expression "pcStack_f0 = pcVar23" identifier = identifier) ;) (expression_statement "iVar7 = (**(code **)(pcVar33 + 0x1f1f30))(pcVar23);" (assignment_expression "iVar7 = (**(code **)(pcVar33 + 0x1f1f30))(pcVar23)" identifier = (call_expression "(**(code **)(pcVar33 + 0x1f1f30))(pcVar23)" (parenthesized_expression "(**(code **)(pcVar33 + 0x1f1f30))" ( (pointer_expression "**(code **)(pcVar33 + 0x1f1f30)" * (pointer_expression "*(code **)(pcVar33 + 0x1f1f30)" * (cast_expression "(code **)(pcVar33 + 0x1f1f30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1f1f30)" ( (binary_expression "pcVar33 + 0x1f1f30" identifier + number_literal) ))))) )) (argument_list "(pcVar23)" ( identifier )))) ;) (expression_statement "pcVar25 = pcStack_f0 + iVar7;" (assignment_expression "pcVar25 = pcStack_f0 + iVar7" identifier = (binary_expression "pcStack_f0 + iVar7" identifier + identifier)) ;) (expression_statement "pcVar23 = pcStack_f0;" (assignment_expression "pcVar23 = pcStack_f0" identifier = identifier) ;) }))) (expression_statement "(**(code **)(pcVar33 + 0x1edefc))(&TStack_168,pcVar23,pcVar25,0);" (call_expression "(**(code **)(pcVar33 + 0x1edefc))(&TStack_168,pcVar23,pcVar25,0)" (parenthesized_expression "(**(code **)(pcVar33 + 0x1edefc))" ( (pointer_expression "**(code **)(pcVar33 + 0x1edefc)" * (pointer_expression "*(code **)(pcVar33 + 0x1edefc)" * (cast_expression "(code **)(pcVar33 + 0x1edefc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1edefc)" ( (binary_expression "pcVar33 + 0x1edefc" identifier + number_literal) ))))) )) (argument_list "(&TStack_168,pcVar23,pcVar25,0)" ( (pointer_expression "&TStack_168" & identifier) , identifier , identifier , number_literal ))) ;) }) (else_clause "else {\n        (*pTVar2->_vptr_Task[5])(&TStack_168,pTVar2);\n      }" else (compound_statement "{\n        (*pTVar2->_vptr_Task[5])(&TStack_168,pTVar2);\n      }" { (expression_statement "(*pTVar2->_vptr_Task[5])(&TStack_168,pTVar2);" (call_expression "(*pTVar2->_vptr_Task[5])(&TStack_168,pTVar2)" (parenthesized_expression "(*pTVar2->_vptr_Task[5])" ( (pointer_expression "*pTVar2->_vptr_Task[5]" * (subscript_expression "pTVar2->_vptr_Task[5]" (field_expression "pTVar2->_vptr_Task" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(&TStack_168,pTVar2)" ( (pointer_expression "&TStack_168" & identifier) , identifier ))) ;) }))) (expression_statement "plVar20 = (long *)(pTVar2->name_)._M_dataplus._M_p;" (assignment_expression "plVar20 = (long *)(pTVar2->name_)._M_dataplus._M_p" identifier = (cast_expression "(long *)(pTVar2->name_)._M_dataplus._M_p" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (field_expression "(pTVar2->name_)._M_dataplus._M_p" (field_expression "(pTVar2->name_)._M_dataplus" (parenthesized_expression "(pTVar2->name_)" ( (field_expression "pTVar2->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) (if_statement "if ((long *)TStack_168.start_time_.user == plStack_fc) {\n        if (TStack_168.start_time_.sys != 0) {\n          if (TStack_168.start_time_.sys == 1) {\n            *(char *)plVar20 = TStack_168.start_time_.wall._0_1_;\n            plVar20 = (long *)(pTVar2->name_)._M_dataplus._M_p;\n          }\n          else {\n            (**(code **)(pcVar33 + 0x1f1f3c))(plVar20,plStack_fc);\n            plVar20 = (long *)(pTVar2->name_)._M_dataplus._M_p;\n          }\n        }\n        (pTVar2->name_)._M_string_length = TStack_168.start_time_.sys;\n        *(char *)((int)plVar20 + TStack_168.start_time_.sys) = '\0';\n        sVar10 = TStack_168.start_time_.wall;\n      }\n      else {\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)plVar20 == &(pTVar2->name_).field_2) {\n          (pTVar2->name_)._M_dataplus._M_p = (pointer)TStack_168.start_time_.user;\n          (pTVar2->name_)._M_string_length = TStack_168.start_time_.sys;\n          (pTVar2->name_).field_2._M_allocated_capacity = TStack_168.start_time_.wall;\n        }\n        else {\n          sVar10 = (pTVar2->name_).field_2._M_allocated_capacity;\n          (pTVar2->name_)._M_dataplus._M_p = (pointer)TStack_168.start_time_.user;\n          (pTVar2->name_)._M_string_length = TStack_168.start_time_.sys;\n          (pTVar2->name_).field_2._M_allocated_capacity = TStack_168.start_time_.wall;\n          TStack_168.start_time_.user = (long)plVar20;\n          if (plVar20 != (long *)0x0) goto LAB_002d3f6c;\n        }\n        TStack_168.start_time_.user = (long)plStack_fc;\n        sVar10 = TStack_168.start_time_.wall;\n      }" if (parenthesized_expression "((long *)TStack_168.start_time_.user == plStack_fc)" ( (binary_expression "(long *)TStack_168.start_time_.user == plStack_fc" (cast_expression "(long *)TStack_168.start_time_.user" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (field_expression "TStack_168.start_time_.user" (field_expression "TStack_168.start_time_" identifier . field_identifier) . field_identifier)) == identifier) )) (compound_statement "{\n        if (TStack_168.start_time_.sys != 0) {\n          if (TStack_168.start_time_.sys == 1) {\n            *(char *)plVar20 = TStack_168.start_time_.wall._0_1_;\n            plVar20 = (long *)(pTVar2->name_)._M_dataplus._M_p;\n          }\n          else {\n            (**(code **)(pcVar33 + 0x1f1f3c))(plVar20,plStack_fc);\n            plVar20 = (long *)(pTVar2->name_)._M_dataplus._M_p;\n          }\n        }\n        (pTVar2->name_)._M_string_length = TStack_168.start_time_.sys;\n        *(char *)((int)plVar20 + TStack_168.start_time_.sys) = '\0';\n        sVar10 = TStack_168.start_time_.wall;\n      }" { (if_statement "if (TStack_168.start_time_.sys != 0) {\n          if (TStack_168.start_time_.sys == 1) {\n            *(char *)plVar20 = TStack_168.start_time_.wall._0_1_;\n            plVar20 = (long *)(pTVar2->name_)._M_dataplus._M_p;\n          }\n          else {\n            (**(code **)(pcVar33 + 0x1f1f3c))(plVar20,plStack_fc);\n            plVar20 = (long *)(pTVar2->name_)._M_dataplus._M_p;\n          }\n        }" if (parenthesized_expression "(TStack_168.start_time_.sys != 0)" ( (binary_expression "TStack_168.start_time_.sys != 0" (field_expression "TStack_168.start_time_.sys" (field_expression "TStack_168.start_time_" identifier . field_identifier) . field_identifier) != number_literal) )) (compound_statement "{\n          if (TStack_168.start_time_.sys == 1) {\n            *(char *)plVar20 = TStack_168.start_time_.wall._0_1_;\n            plVar20 = (long *)(pTVar2->name_)._M_dataplus._M_p;\n          }\n          else {\n            (**(code **)(pcVar33 + 0x1f1f3c))(plVar20,plStack_fc);\n            plVar20 = (long *)(pTVar2->name_)._M_dataplus._M_p;\n          }\n        }" { (if_statement "if (TStack_168.start_time_.sys == 1) {\n            *(char *)plVar20 = TStack_168.start_time_.wall._0_1_;\n            plVar20 = (long *)(pTVar2->name_)._M_dataplus._M_p;\n          }\n          else {\n            (**(code **)(pcVar33 + 0x1f1f3c))(plVar20,plStack_fc);\n            plVar20 = (long *)(pTVar2->name_)._M_dataplus._M_p;\n          }" if (parenthesized_expression "(TStack_168.start_time_.sys == 1)" ( (binary_expression "TStack_168.start_time_.sys == 1" (field_expression "TStack_168.start_time_.sys" (field_expression "TStack_168.start_time_" identifier . field_identifier) . field_identifier) == number_literal) )) (compound_statement "{\n            *(char *)plVar20 = TStack_168.start_time_.wall._0_1_;\n            plVar20 = (long *)(pTVar2->name_)._M_dataplus._M_p;\n          }" { (expression_statement "*(char *)plVar20 = TStack_168.start_time_.wall._0_1_;" (assignment_expression "*(char *)plVar20 = TStack_168.start_time_.wall._0_1_" (pointer_expression "*(char *)plVar20" * (cast_expression "(char *)plVar20" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (field_expression "TStack_168.start_time_.wall._0_1_" (field_expression "TStack_168.start_time_.wall" (field_expression "TStack_168.start_time_" identifier . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "plVar20 = (long *)(pTVar2->name_)._M_dataplus._M_p;" (assignment_expression "plVar20 = (long *)(pTVar2->name_)._M_dataplus._M_p" identifier = (cast_expression "(long *)(pTVar2->name_)._M_dataplus._M_p" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (field_expression "(pTVar2->name_)._M_dataplus._M_p" (field_expression "(pTVar2->name_)._M_dataplus" (parenthesized_expression "(pTVar2->name_)" ( (field_expression "pTVar2->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) }) (else_clause "else {\n            (**(code **)(pcVar33 + 0x1f1f3c))(plVar20,plStack_fc);\n            plVar20 = (long *)(pTVar2->name_)._M_dataplus._M_p;\n          }" else (compound_statement "{\n            (**(code **)(pcVar33 + 0x1f1f3c))(plVar20,plStack_fc);\n            plVar20 = (long *)(pTVar2->name_)._M_dataplus._M_p;\n          }" { (expression_statement "(**(code **)(pcVar33 + 0x1f1f3c))(plVar20,plStack_fc);" (call_expression "(**(code **)(pcVar33 + 0x1f1f3c))(plVar20,plStack_fc)" (parenthesized_expression "(**(code **)(pcVar33 + 0x1f1f3c))" ( (pointer_expression "**(code **)(pcVar33 + 0x1f1f3c)" * (pointer_expression "*(code **)(pcVar33 + 0x1f1f3c)" * (cast_expression "(code **)(pcVar33 + 0x1f1f3c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1f1f3c)" ( (binary_expression "pcVar33 + 0x1f1f3c" identifier + number_literal) ))))) )) (argument_list "(plVar20,plStack_fc)" ( identifier , identifier ))) ;) (expression_statement "plVar20 = (long *)(pTVar2->name_)._M_dataplus._M_p;" (assignment_expression "plVar20 = (long *)(pTVar2->name_)._M_dataplus._M_p" identifier = (cast_expression "(long *)(pTVar2->name_)._M_dataplus._M_p" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (field_expression "(pTVar2->name_)._M_dataplus._M_p" (field_expression "(pTVar2->name_)._M_dataplus" (parenthesized_expression "(pTVar2->name_)" ( (field_expression "pTVar2->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) }))) })) (expression_statement "(pTVar2->name_)._M_string_length = TStack_168.start_time_.sys;" (assignment_expression "(pTVar2->name_)._M_string_length = TStack_168.start_time_.sys" (field_expression "(pTVar2->name_)._M_string_length" (parenthesized_expression "(pTVar2->name_)" ( (field_expression "pTVar2->name_" identifier -> field_identifier) )) . field_identifier) = (field_expression "TStack_168.start_time_.sys" (field_expression "TStack_168.start_time_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "*(char *)((int)plVar20 + TStack_168.start_time_.sys) = '\0';" (assignment_expression "*(char *)((int)plVar20 + TStack_168.start_time_.sys) = '\0'" (pointer_expression "*(char *)((int)plVar20 + TStack_168.start_time_.sys)" * (cast_expression "(char *)((int)plVar20 + TStack_168.start_time_.sys)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)plVar20 + TStack_168.start_time_.sys)" ( (binary_expression "(int)plVar20 + TStack_168.start_time_.sys" (cast_expression "(int)plVar20" ( (type_descriptor "int" primitive_type) ) identifier) + (field_expression "TStack_168.start_time_.sys" (field_expression "TStack_168.start_time_" identifier . field_identifier) . field_identifier)) )))) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "sVar10 = TStack_168.start_time_.wall;" (assignment_expression "sVar10 = TStack_168.start_time_.wall" identifier = (field_expression "TStack_168.start_time_.wall" (field_expression "TStack_168.start_time_" identifier . field_identifier) . field_identifier)) ;) }) (else_clause "else {\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)plVar20 == &(pTVar2->name_).field_2) {\n          (pTVar2->name_)._M_dataplus._M_p = (pointer)TStack_168.start_time_.user;\n          (pTVar2->name_)._M_string_length = TStack_168.start_time_.sys;\n          (pTVar2->name_).field_2._M_allocated_capacity = TStack_168.start_time_.wall;\n        }\n        else {\n          sVar10 = (pTVar2->name_).field_2._M_allocated_capacity;\n          (pTVar2->name_)._M_dataplus._M_p = (pointer)TStack_168.start_time_.user;\n          (pTVar2->name_)._M_string_length = TStack_168.start_time_.sys;\n          (pTVar2->name_).field_2._M_allocated_capacity = TStack_168.start_time_.wall;\n          TStack_168.start_time_.user = (long)plVar20;\n          if (plVar20 != (long *)0x0) goto LAB_002d3f6c;\n        }\n        TStack_168.start_time_.user = (long)plStack_fc;\n        sVar10 = TStack_168.start_time_.wall;\n      }" else (compound_statement "{\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)plVar20 == &(pTVar2->name_).field_2) {\n          (pTVar2->name_)._M_dataplus._M_p = (pointer)TStack_168.start_time_.user;\n          (pTVar2->name_)._M_string_length = TStack_168.start_time_.sys;\n          (pTVar2->name_).field_2._M_allocated_capacity = TStack_168.start_time_.wall;\n        }\n        else {\n          sVar10 = (pTVar2->name_).field_2._M_allocated_capacity;\n          (pTVar2->name_)._M_dataplus._M_p = (pointer)TStack_168.start_time_.user;\n          (pTVar2->name_)._M_string_length = TStack_168.start_time_.sys;\n          (pTVar2->name_).field_2._M_allocated_capacity = TStack_168.start_time_.wall;\n          TStack_168.start_time_.user = (long)plVar20;\n          if (plVar20 != (long *)0x0) goto LAB_002d3f6c;\n        }\n        TStack_168.start_time_.user = (long)plStack_fc;\n        sVar10 = TStack_168.start_time_.wall;\n      }" { (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)plVar20 == &(pTVar2->name_).field_2) {\n          (pTVar2->name_)._M_dataplus._M_p = (pointer)TStack_168.start_time_.user;\n          (pTVar2->name_)._M_string_length = TStack_168.start_time_.sys;\n          (pTVar2->name_).field_2._M_allocated_capacity = TStack_168.start_time_.wall;\n        }\n        else {\n          sVar10 = (pTVar2->name_).field_2._M_allocated_capacity;\n          (pTVar2->name_)._M_dataplus._M_p = (pointer)TStack_168.start_time_.user;\n          (pTVar2->name_)._M_string_length = TStack_168.start_time_.sys;\n          (pTVar2->name_).field_2._M_allocated_capacity = TStack_168.start_time_.wall;\n          TStack_168.start_time_.user = (long)plVar20;\n          if (plVar20 != (long *)0x0) goto LAB_002d3f6c;\n        }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)plVar20 == &(pTVar2->name_).field_2)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)plVar20 == &(pTVar2->name_).field_2)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n             *)plVar20 == &(pTVar2->name_).field_2" (binary_expression "allocator<char>_>_9\n             *)plVar20" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n             *)plVar20" identifier * (ERROR ")" )) identifier)) == (pointer_expression "&(pTVar2->name_).field_2" & (field_expression "(pTVar2->name_).field_2" (parenthesized_expression "(pTVar2->name_)" ( (field_expression "pTVar2->name_" identifier -> field_identifier) )) . field_identifier))) )) )) (compound_statement "{\n          (pTVar2->name_)._M_dataplus._M_p = (pointer)TStack_168.start_time_.user;\n          (pTVar2->name_)._M_string_length = TStack_168.start_time_.sys;\n          (pTVar2->name_).field_2._M_allocated_capacity = TStack_168.start_time_.wall;\n        }" { (expression_statement "(pTVar2->name_)._M_dataplus._M_p = (pointer)TStack_168.start_time_.user;" (assignment_expression "(pTVar2->name_)._M_dataplus._M_p = (pointer)TStack_168.start_time_.user" (field_expression "(pTVar2->name_)._M_dataplus._M_p" (field_expression "(pTVar2->name_)._M_dataplus" (parenthesized_expression "(pTVar2->name_)" ( (field_expression "pTVar2->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(pointer)TStack_168.start_time_.user" ( (type_descriptor "pointer" type_identifier) ) (field_expression "TStack_168.start_time_.user" (field_expression "TStack_168.start_time_" identifier . field_identifier) . field_identifier))) ;) (expression_statement "(pTVar2->name_)._M_string_length = TStack_168.start_time_.sys;" (assignment_expression "(pTVar2->name_)._M_string_length = TStack_168.start_time_.sys" (field_expression "(pTVar2->name_)._M_string_length" (parenthesized_expression "(pTVar2->name_)" ( (field_expression "pTVar2->name_" identifier -> field_identifier) )) . field_identifier) = (field_expression "TStack_168.start_time_.sys" (field_expression "TStack_168.start_time_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "(pTVar2->name_).field_2._M_allocated_capacity = TStack_168.start_time_.wall;" (assignment_expression "(pTVar2->name_).field_2._M_allocated_capacity = TStack_168.start_time_.wall" (field_expression "(pTVar2->name_).field_2._M_allocated_capacity" (field_expression "(pTVar2->name_).field_2" (parenthesized_expression "(pTVar2->name_)" ( (field_expression "pTVar2->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (field_expression "TStack_168.start_time_.wall" (field_expression "TStack_168.start_time_" identifier . field_identifier) . field_identifier)) ;) }) (else_clause "else {\n          sVar10 = (pTVar2->name_).field_2._M_allocated_capacity;\n          (pTVar2->name_)._M_dataplus._M_p = (pointer)TStack_168.start_time_.user;\n          (pTVar2->name_)._M_string_length = TStack_168.start_time_.sys;\n          (pTVar2->name_).field_2._M_allocated_capacity = TStack_168.start_time_.wall;\n          TStack_168.start_time_.user = (long)plVar20;\n          if (plVar20 != (long *)0x0) goto LAB_002d3f6c;\n        }" else (compound_statement "{\n          sVar10 = (pTVar2->name_).field_2._M_allocated_capacity;\n          (pTVar2->name_)._M_dataplus._M_p = (pointer)TStack_168.start_time_.user;\n          (pTVar2->name_)._M_string_length = TStack_168.start_time_.sys;\n          (pTVar2->name_).field_2._M_allocated_capacity = TStack_168.start_time_.wall;\n          TStack_168.start_time_.user = (long)plVar20;\n          if (plVar20 != (long *)0x0) goto LAB_002d3f6c;\n        }" { (expression_statement "sVar10 = (pTVar2->name_).field_2._M_allocated_capacity;" (assignment_expression "sVar10 = (pTVar2->name_).field_2._M_allocated_capacity" identifier = (field_expression "(pTVar2->name_).field_2._M_allocated_capacity" (field_expression "(pTVar2->name_).field_2" (parenthesized_expression "(pTVar2->name_)" ( (field_expression "pTVar2->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "(pTVar2->name_)._M_dataplus._M_p = (pointer)TStack_168.start_time_.user;" (assignment_expression "(pTVar2->name_)._M_dataplus._M_p = (pointer)TStack_168.start_time_.user" (field_expression "(pTVar2->name_)._M_dataplus._M_p" (field_expression "(pTVar2->name_)._M_dataplus" (parenthesized_expression "(pTVar2->name_)" ( (field_expression "pTVar2->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(pointer)TStack_168.start_time_.user" ( (type_descriptor "pointer" type_identifier) ) (field_expression "TStack_168.start_time_.user" (field_expression "TStack_168.start_time_" identifier . field_identifier) . field_identifier))) ;) (expression_statement "(pTVar2->name_)._M_string_length = TStack_168.start_time_.sys;" (assignment_expression "(pTVar2->name_)._M_string_length = TStack_168.start_time_.sys" (field_expression "(pTVar2->name_)._M_string_length" (parenthesized_expression "(pTVar2->name_)" ( (field_expression "pTVar2->name_" identifier -> field_identifier) )) . field_identifier) = (field_expression "TStack_168.start_time_.sys" (field_expression "TStack_168.start_time_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "(pTVar2->name_).field_2._M_allocated_capacity = TStack_168.start_time_.wall;" (assignment_expression "(pTVar2->name_).field_2._M_allocated_capacity = TStack_168.start_time_.wall" (field_expression "(pTVar2->name_).field_2._M_allocated_capacity" (field_expression "(pTVar2->name_).field_2" (parenthesized_expression "(pTVar2->name_)" ( (field_expression "pTVar2->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (field_expression "TStack_168.start_time_.wall" (field_expression "TStack_168.start_time_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "TStack_168.start_time_.user = (long)plVar20;" (assignment_expression "TStack_168.start_time_.user = (long)plVar20" (field_expression "TStack_168.start_time_.user" (field_expression "TStack_168.start_time_" identifier . field_identifier) . field_identifier) = (cast_expression "(long)plVar20" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (if_statement "if (plVar20 != (long *)0x0) goto LAB_002d3f6c;" if (parenthesized_expression "(plVar20 != (long *)0x0)" ( (binary_expression "plVar20 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_002d3f6c;" goto statement_identifier ;)) }))) (expression_statement "TStack_168.start_time_.user = (long)plStack_fc;" (assignment_expression "TStack_168.start_time_.user = (long)plStack_fc" (field_expression "TStack_168.start_time_.user" (field_expression "TStack_168.start_time_" identifier . field_identifier) . field_identifier) = (cast_expression "(long)plStack_fc" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "sVar10 = TStack_168.start_time_.wall;" (assignment_expression "sVar10 = TStack_168.start_time_.wall" identifier = (field_expression "TStack_168.start_time_.wall" (field_expression "TStack_168.start_time_" identifier . field_identifier) . field_identifier)) ;) }))) (labeled_statement "LAB_002d3f6c:\n      TStack_168.start_time_.wall = sVar10;" statement_identifier : (expression_statement "TStack_168.start_time_.wall = sVar10;" (assignment_expression "TStack_168.start_time_.wall = sVar10" (field_expression "TStack_168.start_time_.wall" (field_expression "TStack_168.start_time_" identifier . field_identifier) . field_identifier) = identifier) ;)) (expression_statement "TStack_168.start_time_.sys = 0;" (assignment_expression "TStack_168.start_time_.sys = 0" (field_expression "TStack_168.start_time_.sys" (field_expression "TStack_168.start_time_" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "*(char *)TStack_168.start_time_.user = '\0';" (assignment_expression "*(char *)TStack_168.start_time_.user = '\0'" (pointer_expression "*(char *)TStack_168.start_time_.user" * (cast_expression "(char *)TStack_168.start_time_.user" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "TStack_168.start_time_.user" (field_expression "TStack_168.start_time_" identifier . field_identifier) . field_identifier))) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if ((long *)TStack_168.start_time_.user != plStack_fc) {\n        (**(code **)(pcVar33 + 0x1ed690))();\n      }" if (parenthesized_expression "((long *)TStack_168.start_time_.user != plStack_fc)" ( (binary_expression "(long *)TStack_168.start_time_.user != plStack_fc" (cast_expression "(long *)TStack_168.start_time_.user" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (field_expression "TStack_168.start_time_.user" (field_expression "TStack_168.start_time_" identifier . field_identifier) . field_identifier)) != identifier) )) (compound_statement "{\n        (**(code **)(pcVar33 + 0x1ed690))();\n      }" { (expression_statement "(**(code **)(pcVar33 + 0x1ed690))();" (call_expression "(**(code **)(pcVar33 + 0x1ed690))()" (parenthesized_expression "(**(code **)(pcVar33 + 0x1ed690))" ( (pointer_expression "**(code **)(pcVar33 + 0x1ed690)" * (pointer_expression "*(code **)(pcVar33 + 0x1ed690)" * (cast_expression "(code **)(pcVar33 + 0x1ed690)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1ed690)" ( (binary_expression "pcVar33 + 0x1ed690" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) })) (expression_statement "(**(code **)(pcVar33 + 0x1ee3ac))(uVar29,iStack_f8,iVar11,(pTVar2->name_)._M_dataplus._M_p);" (call_expression "(**(code **)(pcVar33 + 0x1ee3ac))(uVar29,iStack_f8,iVar11,(pTVar2->name_)._M_dataplus._M_p)" (parenthesized_expression "(**(code **)(pcVar33 + 0x1ee3ac))" ( (pointer_expression "**(code **)(pcVar33 + 0x1ee3ac)" * (pointer_expression "*(code **)(pcVar33 + 0x1ee3ac)" * (cast_expression "(code **)(pcVar33 + 0x1ee3ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1ee3ac)" ( (binary_expression "pcVar33 + 0x1ee3ac" identifier + number_literal) ))))) )) (argument_list "(uVar29,iStack_f8,iVar11,(pTVar2->name_)._M_dataplus._M_p)" ( identifier , identifier , identifier , (field_expression "(pTVar2->name_)._M_dataplus._M_p" (field_expression "(pTVar2->name_)._M_dataplus" (parenthesized_expression "(pTVar2->name_)" ( (field_expression "pTVar2->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) ))) ;) })) (labeled_statement "Timer::Timer(&TStack_168);" statement_identifier : (ERROR ":" :) (expression_statement "Timer(&TStack_168);" (call_expression "Timer(&TStack_168)" identifier (argument_list "(&TStack_168)" ( (pointer_expression "&TStack_168" & identifier) ))) ;)) (if_statement "if ((*(int *)(*piVar24 + 8) != 0) && ((*(uint *)(*piVar24 + 0x14) & 1) != 0)) {\n    Timer::start(&TStack_168);\n  }" if (parenthesized_expression "((*(int *)(*piVar24 + 8) != 0) && ((*(uint *)(*piVar24 + 0x14) & 1) != 0))" ( (binary_expression "(*(int *)(*piVar24 + 8) != 0) && ((*(uint *)(*piVar24 + 0x14) & 1) != 0)" (parenthesized_expression "(*(int *)(*piVar24 + 8) != 0)" ( (binary_expression "*(int *)(*piVar24 + 8) != 0" (pointer_expression "*(int *)(*piVar24 + 8)" * (cast_expression "(int *)(*piVar24 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar24 + 8)" ( (binary_expression "*piVar24 + 8" (pointer_expression "*piVar24" * identifier) + number_literal) )))) != number_literal) )) && (parenthesized_expression "((*(uint *)(*piVar24 + 0x14) & 1) != 0)" ( (binary_expression "(*(uint *)(*piVar24 + 0x14) & 1) != 0" (parenthesized_expression "(*(uint *)(*piVar24 + 0x14) & 1)" ( (binary_expression "*(uint *)(*piVar24 + 0x14) & 1" (pointer_expression "*(uint *)(*piVar24 + 0x14)" * (cast_expression "(uint *)(*piVar24 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar24 + 0x14)" ( (binary_expression "*piVar24 + 0x14" (pointer_expression "*piVar24" * identifier) + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    Timer::start(&TStack_168);\n  }" { (labeled_statement "Timer::start(&TStack_168);" statement_identifier : (ERROR ":" :) (expression_statement "start(&TStack_168);" (call_expression "start(&TStack_168)" identifier (argument_list "(&TStack_168)" ( (pointer_expression "&TStack_168" & identifier) ))) ;)) })) (if_statement "if (pTVar2->_vptr_Task[4] == p_Var30) {\n    (**(code **)(*pTVar2[1]._vptr_Task + 8))(pTVar2[1]._vptr_Task,this_00);\n  }\n  else {\n    (*pTVar2->_vptr_Task[4])(pTVar2,this_00,pTVar2);\n  }" if (parenthesized_expression "(pTVar2->_vptr_Task[4] == p_Var30)" ( (binary_expression "pTVar2->_vptr_Task[4] == p_Var30" (subscript_expression "pTVar2->_vptr_Task[4]" (field_expression "pTVar2->_vptr_Task" identifier -> field_identifier) [ number_literal ]) == identifier) )) (compound_statement "{\n    (**(code **)(*pTVar2[1]._vptr_Task + 8))(pTVar2[1]._vptr_Task,this_00);\n  }" { (expression_statement "(**(code **)(*pTVar2[1]._vptr_Task + 8))(pTVar2[1]._vptr_Task,this_00);" (call_expression "(**(code **)(*pTVar2[1]._vptr_Task + 8))(pTVar2[1]._vptr_Task,this_00)" (parenthesized_expression "(**(code **)(*pTVar2[1]._vptr_Task + 8))" ( (pointer_expression "**(code **)(*pTVar2[1]._vptr_Task + 8)" * (pointer_expression "*(code **)(*pTVar2[1]._vptr_Task + 8)" * (cast_expression "(code **)(*pTVar2[1]._vptr_Task + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*pTVar2[1]._vptr_Task + 8)" ( (binary_expression "*pTVar2[1]._vptr_Task + 8" (pointer_expression "*pTVar2[1]._vptr_Task" * (field_expression "pTVar2[1]._vptr_Task" (subscript_expression "pTVar2[1]" identifier [ number_literal ]) . field_identifier)) + number_literal) ))))) )) (argument_list "(pTVar2[1]._vptr_Task,this_00)" ( (field_expression "pTVar2[1]._vptr_Task" (subscript_expression "pTVar2[1]" identifier [ number_literal ]) . field_identifier) , identifier ))) ;) }) (else_clause "else {\n    (*pTVar2->_vptr_Task[4])(pTVar2,this_00,pTVar2);\n  }" else (compound_statement "{\n    (*pTVar2->_vptr_Task[4])(pTVar2,this_00,pTVar2);\n  }" { (expression_statement "(*pTVar2->_vptr_Task[4])(pTVar2,this_00,pTVar2);" (call_expression "(*pTVar2->_vptr_Task[4])(pTVar2,this_00,pTVar2)" (parenthesized_expression "(*pTVar2->_vptr_Task[4])" ( (pointer_expression "*pTVar2->_vptr_Task[4]" * (subscript_expression "pTVar2->_vptr_Task[4]" (field_expression "pTVar2->_vptr_Task" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(pTVar2,this_00,pTVar2)" ( identifier , identifier , identifier ))) ;) }))) (if_statement "if ((*(int *)(*piVar24 + 8) == 0) || ((*(uint *)(*piVar24 + 0x14) & 1) == 0)) {\nLAB_002d3d6c:\n    pLVar5 = (this_00->lock_).lock_;\n  }\n  else {\n    Timer::get_elapsed_time(&TStack_10c,&TStack_168);\n    lVar1 = TStack_10c.user;\n    puVar16 = (undefined4 *)*piVar24;\n    if ((puVar16[2] == 0) || ((puVar16[5] & 1) == 0)) goto LAB_002d3d6c;\n    pcStack_f0 = (pointer)*puVar16;\n    psVar12 = (size_type *)TStack_10c.sys;\n    psVar26 = (size_type *)TStack_10c.wall;\n    if ((pTVar2->name_)._M_string_length == 0) {\n      psVar12 = asStack_130;\n      if (pTVar2->_vptr_Task[5] == p_Stack_f4) {\n        psStack_e8 = (size_type *)pTVar2[1].name_._M_dataplus._M_p;\n        _Stack_138._M_p = (pointer)psVar12;\n        if (psStack_e8 == (size_type *)0x0) {\n          pcVar23 = (pointer)0xffffffff;\n          psStack_e0 = (size_type *)TStack_10c.sys;\n          psStack_e4 = (size_type *)TStack_10c.wall;\n        }\n        else {\n          psStack_e0 = (size_type *)TStack_10c.sys;\n          psStack_e4 = (size_type *)TStack_10c.wall;\n          psStack_dc = psVar12;\n          iVar7 = (**(code **)(pcVar33 + 0x1f1f30))(psStack_e8);\n          pcVar23 = (pointer)((int)psStack_e8 + iVar7);\n          psVar12 = psStack_dc;\n        }\n        pcVar25 = (pointer)psStack_e8;\n        psStack_e8 = psStack_e4;\n        psStack_e4 = psStack_e0;\n        psStack_e0 = psVar12;\n        (**(code **)(pcVar33 + 0x1edefc))(&_Stack_138,pcVar25,pcVar23,0);\n        psVar14 = psStack_e0;\n        psVar12 = psStack_e4;\n        psVar26 = psStack_e8;\n      }\n      else {\n        psStack_e0 = (size_type *)TStack_10c.sys;\n        psStack_e4 = (size_type *)TStack_10c.wall;\n        psStack_e8 = psVar12;\n        (*pTVar2->_vptr_Task[5])(&_Stack_138,pTVar2);\n        psVar14 = psStack_e8;\n        psVar12 = psStack_e0;\n        psVar26 = psStack_e4;\n      }\n      _Var21._M_p = (pTVar2->name_)._M_dataplus._M_p;\n      if ((size_type *)_Stack_138._M_p == psVar14) {\n        if (sStack_134 != 0) {\n          if (sStack_134 == 1) {\n            *_Var21._M_p = asStack_130[0]._0_1_;\n            _Var21._M_p = (pTVar2->name_)._M_dataplus._M_p;\n          }\n          else {\n            psStack_e8 = psVar14;\n            psStack_e4 = psVar26;\n            psStack_e0 = psVar12;\n            (**(code **)(pcVar33 + 0x1f1f3c))(_Var21._M_p,psVar14);\n            _Var21._M_p = (pTVar2->name_)._M_dataplus._M_p;\n            psVar14 = psStack_e8;\n            psVar12 = psStack_e0;\n            psVar26 = psStack_e4;\n          }\n        }\n        (pTVar2->name_)._M_string_length = sStack_134;\n        *(_Var21._M_p + sStack_134) = '\0';\n        psVar13 = psVar14;\n        _Var21._M_p = _Stack_138._M_p;\n        sVar10 = asStack_130[0];\n      }\n      else {\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)_Var21._M_p == &(pTVar2->name_).field_2) {\n          (pTVar2->name_)._M_dataplus._M_p = _Stack_138._M_p;\n          (pTVar2->name_)._M_string_length = sStack_134;\n          (pTVar2->name_).field_2._M_allocated_capacity = asStack_130[0];\n        }\n        else {\n          sVar10 = (pTVar2->name_).field_2._M_allocated_capacity;\n          (pTVar2->name_)._M_dataplus._M_p = _Stack_138._M_p;\n          (pTVar2->name_)._M_string_length = sStack_134;\n          (pTVar2->name_).field_2._M_allocated_capacity = asStack_130[0];\n          psVar13 = psVar14;\n          _Stack_138._M_p = _Var21._M_p;\n          if ((size_type *)_Var21._M_p != (size_type *)0x0) goto LAB_002d4130;\n        }\n        psVar13 = asStack_130;\n        _Var21._M_p = (pointer)asStack_130;\n        _Stack_138._M_p = (pointer)psVar14;\n        sVar10 = asStack_130[0];\n      }\nLAB_002d4130:\n      asStack_130[0] = sVar10;\n      sStack_134 = 0;\n      *_Var21._M_p = '\0';\n      if ((size_type *)_Stack_138._M_p != psVar13) {\n        psStack_e8 = psVar26;\n        psStack_e4 = psVar12;\n        (**(code **)(pcVar33 + 0x1ed690))();\n        psVar12 = psStack_e4;\n        psVar26 = psStack_e8;\n      }\n    }\n    (**(code **)(pcVar33 + 0x1ee3ac))\n              (pcStack_f0,iStack_ec,iVar11,(pTVar2->name_)._M_dataplus._M_p,lVar1 / 1000,\n               (lVar1 % 1000) * 1000,(int)psVar12 / 1000,((int)psVar12 % 1000) * 1000,\n               (int)psVar26 / 1000,((int)psVar26 % 1000) * 1000);\n    pLVar5 = (this_00->lock_).lock_;\n  }" if (parenthesized_expression "((*(int *)(*piVar24 + 8) == 0) || ((*(uint *)(*piVar24 + 0x14) & 1) == 0))" ( (binary_expression "(*(int *)(*piVar24 + 8) == 0) || ((*(uint *)(*piVar24 + 0x14) & 1) == 0)" (parenthesized_expression "(*(int *)(*piVar24 + 8) == 0)" ( (binary_expression "*(int *)(*piVar24 + 8) == 0" (pointer_expression "*(int *)(*piVar24 + 8)" * (cast_expression "(int *)(*piVar24 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar24 + 8)" ( (binary_expression "*piVar24 + 8" (pointer_expression "*piVar24" * identifier) + number_literal) )))) == number_literal) )) || (parenthesized_expression "((*(uint *)(*piVar24 + 0x14) & 1) == 0)" ( (binary_expression "(*(uint *)(*piVar24 + 0x14) & 1) == 0" (parenthesized_expression "(*(uint *)(*piVar24 + 0x14) & 1)" ( (binary_expression "*(uint *)(*piVar24 + 0x14) & 1" (pointer_expression "*(uint *)(*piVar24 + 0x14)" * (cast_expression "(uint *)(*piVar24 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar24 + 0x14)" ( (binary_expression "*piVar24 + 0x14" (pointer_expression "*piVar24" * identifier) + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\nLAB_002d3d6c:\n    pLVar5 = (this_00->lock_).lock_;\n  }" { (labeled_statement "LAB_002d3d6c:\n    pLVar5 = (this_00->lock_).lock_;" statement_identifier : (expression_statement "pLVar5 = (this_00->lock_).lock_;" (assignment_expression "pLVar5 = (this_00->lock_).lock_" identifier = (field_expression "(this_00->lock_).lock_" (parenthesized_expression "(this_00->lock_)" ( (field_expression "this_00->lock_" identifier -> field_identifier) )) . field_identifier)) ;)) }) (else_clause "else {\n    Timer::get_elapsed_time(&TStack_10c,&TStack_168);\n    lVar1 = TStack_10c.user;\n    puVar16 = (undefined4 *)*piVar24;\n    if ((puVar16[2] == 0) || ((puVar16[5] & 1) == 0)) goto LAB_002d3d6c;\n    pcStack_f0 = (pointer)*puVar16;\n    psVar12 = (size_type *)TStack_10c.sys;\n    psVar26 = (size_type *)TStack_10c.wall;\n    if ((pTVar2->name_)._M_string_length == 0) {\n      psVar12 = asStack_130;\n      if (pTVar2->_vptr_Task[5] == p_Stack_f4) {\n        psStack_e8 = (size_type *)pTVar2[1].name_._M_dataplus._M_p;\n        _Stack_138._M_p = (pointer)psVar12;\n        if (psStack_e8 == (size_type *)0x0) {\n          pcVar23 = (pointer)0xffffffff;\n          psStack_e0 = (size_type *)TStack_10c.sys;\n          psStack_e4 = (size_type *)TStack_10c.wall;\n        }\n        else {\n          psStack_e0 = (size_type *)TStack_10c.sys;\n          psStack_e4 = (size_type *)TStack_10c.wall;\n          psStack_dc = psVar12;\n          iVar7 = (**(code **)(pcVar33 + 0x1f1f30))(psStack_e8);\n          pcVar23 = (pointer)((int)psStack_e8 + iVar7);\n          psVar12 = psStack_dc;\n        }\n        pcVar25 = (pointer)psStack_e8;\n        psStack_e8 = psStack_e4;\n        psStack_e4 = psStack_e0;\n        psStack_e0 = psVar12;\n        (**(code **)(pcVar33 + 0x1edefc))(&_Stack_138,pcVar25,pcVar23,0);\n        psVar14 = psStack_e0;\n        psVar12 = psStack_e4;\n        psVar26 = psStack_e8;\n      }\n      else {\n        psStack_e0 = (size_type *)TStack_10c.sys;\n        psStack_e4 = (size_type *)TStack_10c.wall;\n        psStack_e8 = psVar12;\n        (*pTVar2->_vptr_Task[5])(&_Stack_138,pTVar2);\n        psVar14 = psStack_e8;\n        psVar12 = psStack_e0;\n        psVar26 = psStack_e4;\n      }\n      _Var21._M_p = (pTVar2->name_)._M_dataplus._M_p;\n      if ((size_type *)_Stack_138._M_p == psVar14) {\n        if (sStack_134 != 0) {\n          if (sStack_134 == 1) {\n            *_Var21._M_p = asStack_130[0]._0_1_;\n            _Var21._M_p = (pTVar2->name_)._M_dataplus._M_p;\n          }\n          else {\n            psStack_e8 = psVar14;\n            psStack_e4 = psVar26;\n            psStack_e0 = psVar12;\n            (**(code **)(pcVar33 + 0x1f1f3c))(_Var21._M_p,psVar14);\n            _Var21._M_p = (pTVar2->name_)._M_dataplus._M_p;\n            psVar14 = psStack_e8;\n            psVar12 = psStack_e0;\n            psVar26 = psStack_e4;\n          }\n        }\n        (pTVar2->name_)._M_string_length = sStack_134;\n        *(_Var21._M_p + sStack_134) = '\0';\n        psVar13 = psVar14;\n        _Var21._M_p = _Stack_138._M_p;\n        sVar10 = asStack_130[0];\n      }\n      else {\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)_Var21._M_p == &(pTVar2->name_).field_2) {\n          (pTVar2->name_)._M_dataplus._M_p = _Stack_138._M_p;\n          (pTVar2->name_)._M_string_length = sStack_134;\n          (pTVar2->name_).field_2._M_allocated_capacity = asStack_130[0];\n        }\n        else {\n          sVar10 = (pTVar2->name_).field_2._M_allocated_capacity;\n          (pTVar2->name_)._M_dataplus._M_p = _Stack_138._M_p;\n          (pTVar2->name_)._M_string_length = sStack_134;\n          (pTVar2->name_).field_2._M_allocated_capacity = asStack_130[0];\n          psVar13 = psVar14;\n          _Stack_138._M_p = _Var21._M_p;\n          if ((size_type *)_Var21._M_p != (size_type *)0x0) goto LAB_002d4130;\n        }\n        psVar13 = asStack_130;\n        _Var21._M_p = (pointer)asStack_130;\n        _Stack_138._M_p = (pointer)psVar14;\n        sVar10 = asStack_130[0];\n      }\nLAB_002d4130:\n      asStack_130[0] = sVar10;\n      sStack_134 = 0;\n      *_Var21._M_p = '\0';\n      if ((size_type *)_Stack_138._M_p != psVar13) {\n        psStack_e8 = psVar26;\n        psStack_e4 = psVar12;\n        (**(code **)(pcVar33 + 0x1ed690))();\n        psVar12 = psStack_e4;\n        psVar26 = psStack_e8;\n      }\n    }\n    (**(code **)(pcVar33 + 0x1ee3ac))\n              (pcStack_f0,iStack_ec,iVar11,(pTVar2->name_)._M_dataplus._M_p,lVar1 / 1000,\n               (lVar1 % 1000) * 1000,(int)psVar12 / 1000,((int)psVar12 % 1000) * 1000,\n               (int)psVar26 / 1000,((int)psVar26 % 1000) * 1000);\n    pLVar5 = (this_00->lock_).lock_;\n  }" else (compound_statement "{\n    Timer::get_elapsed_time(&TStack_10c,&TStack_168);\n    lVar1 = TStack_10c.user;\n    puVar16 = (undefined4 *)*piVar24;\n    if ((puVar16[2] == 0) || ((puVar16[5] & 1) == 0)) goto LAB_002d3d6c;\n    pcStack_f0 = (pointer)*puVar16;\n    psVar12 = (size_type *)TStack_10c.sys;\n    psVar26 = (size_type *)TStack_10c.wall;\n    if ((pTVar2->name_)._M_string_length == 0) {\n      psVar12 = asStack_130;\n      if (pTVar2->_vptr_Task[5] == p_Stack_f4) {\n        psStack_e8 = (size_type *)pTVar2[1].name_._M_dataplus._M_p;\n        _Stack_138._M_p = (pointer)psVar12;\n        if (psStack_e8 == (size_type *)0x0) {\n          pcVar23 = (pointer)0xffffffff;\n          psStack_e0 = (size_type *)TStack_10c.sys;\n          psStack_e4 = (size_type *)TStack_10c.wall;\n        }\n        else {\n          psStack_e0 = (size_type *)TStack_10c.sys;\n          psStack_e4 = (size_type *)TStack_10c.wall;\n          psStack_dc = psVar12;\n          iVar7 = (**(code **)(pcVar33 + 0x1f1f30))(psStack_e8);\n          pcVar23 = (pointer)((int)psStack_e8 + iVar7);\n          psVar12 = psStack_dc;\n        }\n        pcVar25 = (pointer)psStack_e8;\n        psStack_e8 = psStack_e4;\n        psStack_e4 = psStack_e0;\n        psStack_e0 = psVar12;\n        (**(code **)(pcVar33 + 0x1edefc))(&_Stack_138,pcVar25,pcVar23,0);\n        psVar14 = psStack_e0;\n        psVar12 = psStack_e4;\n        psVar26 = psStack_e8;\n      }\n      else {\n        psStack_e0 = (size_type *)TStack_10c.sys;\n        psStack_e4 = (size_type *)TStack_10c.wall;\n        psStack_e8 = psVar12;\n        (*pTVar2->_vptr_Task[5])(&_Stack_138,pTVar2);\n        psVar14 = psStack_e8;\n        psVar12 = psStack_e0;\n        psVar26 = psStack_e4;\n      }\n      _Var21._M_p = (pTVar2->name_)._M_dataplus._M_p;\n      if ((size_type *)_Stack_138._M_p == psVar14) {\n        if (sStack_134 != 0) {\n          if (sStack_134 == 1) {\n            *_Var21._M_p = asStack_130[0]._0_1_;\n            _Var21._M_p = (pTVar2->name_)._M_dataplus._M_p;\n          }\n          else {\n            psStack_e8 = psVar14;\n            psStack_e4 = psVar26;\n            psStack_e0 = psVar12;\n            (**(code **)(pcVar33 + 0x1f1f3c))(_Var21._M_p,psVar14);\n            _Var21._M_p = (pTVar2->name_)._M_dataplus._M_p;\n            psVar14 = psStack_e8;\n            psVar12 = psStack_e0;\n            psVar26 = psStack_e4;\n          }\n        }\n        (pTVar2->name_)._M_string_length = sStack_134;\n        *(_Var21._M_p + sStack_134) = '\0';\n        psVar13 = psVar14;\n        _Var21._M_p = _Stack_138._M_p;\n        sVar10 = asStack_130[0];\n      }\n      else {\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)_Var21._M_p == &(pTVar2->name_).field_2) {\n          (pTVar2->name_)._M_dataplus._M_p = _Stack_138._M_p;\n          (pTVar2->name_)._M_string_length = sStack_134;\n          (pTVar2->name_).field_2._M_allocated_capacity = asStack_130[0];\n        }\n        else {\n          sVar10 = (pTVar2->name_).field_2._M_allocated_capacity;\n          (pTVar2->name_)._M_dataplus._M_p = _Stack_138._M_p;\n          (pTVar2->name_)._M_string_length = sStack_134;\n          (pTVar2->name_).field_2._M_allocated_capacity = asStack_130[0];\n          psVar13 = psVar14;\n          _Stack_138._M_p = _Var21._M_p;\n          if ((size_type *)_Var21._M_p != (size_type *)0x0) goto LAB_002d4130;\n        }\n        psVar13 = asStack_130;\n        _Var21._M_p = (pointer)asStack_130;\n        _Stack_138._M_p = (pointer)psVar14;\n        sVar10 = asStack_130[0];\n      }\nLAB_002d4130:\n      asStack_130[0] = sVar10;\n      sStack_134 = 0;\n      *_Var21._M_p = '\0';\n      if ((size_type *)_Stack_138._M_p != psVar13) {\n        psStack_e8 = psVar26;\n        psStack_e4 = psVar12;\n        (**(code **)(pcVar33 + 0x1ed690))();\n        psVar12 = psStack_e4;\n        psVar26 = psStack_e8;\n      }\n    }\n    (**(code **)(pcVar33 + 0x1ee3ac))\n              (pcStack_f0,iStack_ec,iVar11,(pTVar2->name_)._M_dataplus._M_p,lVar1 / 1000,\n               (lVar1 % 1000) * 1000,(int)psVar12 / 1000,((int)psVar12 % 1000) * 1000,\n               (int)psVar26 / 1000,((int)psVar26 % 1000) * 1000);\n    pLVar5 = (this_00->lock_).lock_;\n  }" { (labeled_statement "Timer::get_elapsed_time(&TStack_10c,&TStack_168);" statement_identifier : (ERROR ":" :) (expression_statement "get_elapsed_time(&TStack_10c,&TStack_168);" (call_expression "get_elapsed_time(&TStack_10c,&TStack_168)" identifier (argument_list "(&TStack_10c,&TStack_168)" ( (pointer_expression "&TStack_10c" & identifier) , (pointer_expression "&TStack_168" & identifier) ))) ;)) (expression_statement "lVar1 = TStack_10c.user;" (assignment_expression "lVar1 = TStack_10c.user" identifier = (field_expression "TStack_10c.user" identifier . field_identifier)) ;) (expression_statement "puVar16 = (undefined4 *)*piVar24;" (assignment_expression "puVar16 = (undefined4 *)*piVar24" identifier = (cast_expression "(undefined4 *)*piVar24" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar24" * identifier))) ;) (if_statement "if ((puVar16[2] == 0) || ((puVar16[5] & 1) == 0)) goto LAB_002d3d6c;" if (parenthesized_expression "((puVar16[2] == 0) || ((puVar16[5] & 1) == 0))" ( (binary_expression "(puVar16[2] == 0) || ((puVar16[5] & 1) == 0)" (parenthesized_expression "(puVar16[2] == 0)" ( (binary_expression "puVar16[2] == 0" (subscript_expression "puVar16[2]" identifier [ number_literal ]) == number_literal) )) || (parenthesized_expression "((puVar16[5] & 1) == 0)" ( (binary_expression "(puVar16[5] & 1) == 0" (parenthesized_expression "(puVar16[5] & 1)" ( (binary_expression "puVar16[5] & 1" (subscript_expression "puVar16[5]" identifier [ number_literal ]) & number_literal) )) == number_literal) ))) )) (goto_statement "goto LAB_002d3d6c;" goto statement_identifier ;)) (expression_statement "pcStack_f0 = (pointer)*puVar16;" (assignment_expression "pcStack_f0 = (pointer)*puVar16" identifier = (binary_expression "(pointer)*puVar16" (parenthesized_expression "(pointer)" ( identifier )) * identifier)) ;) (expression_statement "psVar12 = (size_type *)TStack_10c.sys;" (assignment_expression "psVar12 = (size_type *)TStack_10c.sys" identifier = (cast_expression "(size_type *)TStack_10c.sys" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "TStack_10c.sys" identifier . field_identifier))) ;) (expression_statement "psVar26 = (size_type *)TStack_10c.wall;" (assignment_expression "psVar26 = (size_type *)TStack_10c.wall" identifier = (cast_expression "(size_type *)TStack_10c.wall" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "TStack_10c.wall" identifier . field_identifier))) ;) (if_statement "if ((pTVar2->name_)._M_string_length == 0) {\n      psVar12 = asStack_130;\n      if (pTVar2->_vptr_Task[5] == p_Stack_f4) {\n        psStack_e8 = (size_type *)pTVar2[1].name_._M_dataplus._M_p;\n        _Stack_138._M_p = (pointer)psVar12;\n        if (psStack_e8 == (size_type *)0x0) {\n          pcVar23 = (pointer)0xffffffff;\n          psStack_e0 = (size_type *)TStack_10c.sys;\n          psStack_e4 = (size_type *)TStack_10c.wall;\n        }\n        else {\n          psStack_e0 = (size_type *)TStack_10c.sys;\n          psStack_e4 = (size_type *)TStack_10c.wall;\n          psStack_dc = psVar12;\n          iVar7 = (**(code **)(pcVar33 + 0x1f1f30))(psStack_e8);\n          pcVar23 = (pointer)((int)psStack_e8 + iVar7);\n          psVar12 = psStack_dc;\n        }\n        pcVar25 = (pointer)psStack_e8;\n        psStack_e8 = psStack_e4;\n        psStack_e4 = psStack_e0;\n        psStack_e0 = psVar12;\n        (**(code **)(pcVar33 + 0x1edefc))(&_Stack_138,pcVar25,pcVar23,0);\n        psVar14 = psStack_e0;\n        psVar12 = psStack_e4;\n        psVar26 = psStack_e8;\n      }\n      else {\n        psStack_e0 = (size_type *)TStack_10c.sys;\n        psStack_e4 = (size_type *)TStack_10c.wall;\n        psStack_e8 = psVar12;\n        (*pTVar2->_vptr_Task[5])(&_Stack_138,pTVar2);\n        psVar14 = psStack_e8;\n        psVar12 = psStack_e0;\n        psVar26 = psStack_e4;\n      }\n      _Var21._M_p = (pTVar2->name_)._M_dataplus._M_p;\n      if ((size_type *)_Stack_138._M_p == psVar14) {\n        if (sStack_134 != 0) {\n          if (sStack_134 == 1) {\n            *_Var21._M_p = asStack_130[0]._0_1_;\n            _Var21._M_p = (pTVar2->name_)._M_dataplus._M_p;\n          }\n          else {\n            psStack_e8 = psVar14;\n            psStack_e4 = psVar26;\n            psStack_e0 = psVar12;\n            (**(code **)(pcVar33 + 0x1f1f3c))(_Var21._M_p,psVar14);\n            _Var21._M_p = (pTVar2->name_)._M_dataplus._M_p;\n            psVar14 = psStack_e8;\n            psVar12 = psStack_e0;\n            psVar26 = psStack_e4;\n          }\n        }\n        (pTVar2->name_)._M_string_length = sStack_134;\n        *(_Var21._M_p + sStack_134) = '\0';\n        psVar13 = psVar14;\n        _Var21._M_p = _Stack_138._M_p;\n        sVar10 = asStack_130[0];\n      }\n      else {\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)_Var21._M_p == &(pTVar2->name_).field_2) {\n          (pTVar2->name_)._M_dataplus._M_p = _Stack_138._M_p;\n          (pTVar2->name_)._M_string_length = sStack_134;\n          (pTVar2->name_).field_2._M_allocated_capacity = asStack_130[0];\n        }\n        else {\n          sVar10 = (pTVar2->name_).field_2._M_allocated_capacity;\n          (pTVar2->name_)._M_dataplus._M_p = _Stack_138._M_p;\n          (pTVar2->name_)._M_string_length = sStack_134;\n          (pTVar2->name_).field_2._M_allocated_capacity = asStack_130[0];\n          psVar13 = psVar14;\n          _Stack_138._M_p = _Var21._M_p;\n          if ((size_type *)_Var21._M_p != (size_type *)0x0) goto LAB_002d4130;\n        }\n        psVar13 = asStack_130;\n        _Var21._M_p = (pointer)asStack_130;\n        _Stack_138._M_p = (pointer)psVar14;\n        sVar10 = asStack_130[0];\n      }\nLAB_002d4130:\n      asStack_130[0] = sVar10;\n      sStack_134 = 0;\n      *_Var21._M_p = '\0';\n      if ((size_type *)_Stack_138._M_p != psVar13) {\n        psStack_e8 = psVar26;\n        psStack_e4 = psVar12;\n        (**(code **)(pcVar33 + 0x1ed690))();\n        psVar12 = psStack_e4;\n        psVar26 = psStack_e8;\n      }\n    }" if (parenthesized_expression "((pTVar2->name_)._M_string_length == 0)" ( (binary_expression "(pTVar2->name_)._M_string_length == 0" (field_expression "(pTVar2->name_)._M_string_length" (parenthesized_expression "(pTVar2->name_)" ( (field_expression "pTVar2->name_" identifier -> field_identifier) )) . field_identifier) == number_literal) )) (compound_statement "{\n      psVar12 = asStack_130;\n      if (pTVar2->_vptr_Task[5] == p_Stack_f4) {\n        psStack_e8 = (size_type *)pTVar2[1].name_._M_dataplus._M_p;\n        _Stack_138._M_p = (pointer)psVar12;\n        if (psStack_e8 == (size_type *)0x0) {\n          pcVar23 = (pointer)0xffffffff;\n          psStack_e0 = (size_type *)TStack_10c.sys;\n          psStack_e4 = (size_type *)TStack_10c.wall;\n        }\n        else {\n          psStack_e0 = (size_type *)TStack_10c.sys;\n          psStack_e4 = (size_type *)TStack_10c.wall;\n          psStack_dc = psVar12;\n          iVar7 = (**(code **)(pcVar33 + 0x1f1f30))(psStack_e8);\n          pcVar23 = (pointer)((int)psStack_e8 + iVar7);\n          psVar12 = psStack_dc;\n        }\n        pcVar25 = (pointer)psStack_e8;\n        psStack_e8 = psStack_e4;\n        psStack_e4 = psStack_e0;\n        psStack_e0 = psVar12;\n        (**(code **)(pcVar33 + 0x1edefc))(&_Stack_138,pcVar25,pcVar23,0);\n        psVar14 = psStack_e0;\n        psVar12 = psStack_e4;\n        psVar26 = psStack_e8;\n      }\n      else {\n        psStack_e0 = (size_type *)TStack_10c.sys;\n        psStack_e4 = (size_type *)TStack_10c.wall;\n        psStack_e8 = psVar12;\n        (*pTVar2->_vptr_Task[5])(&_Stack_138,pTVar2);\n        psVar14 = psStack_e8;\n        psVar12 = psStack_e0;\n        psVar26 = psStack_e4;\n      }\n      _Var21._M_p = (pTVar2->name_)._M_dataplus._M_p;\n      if ((size_type *)_Stack_138._M_p == psVar14) {\n        if (sStack_134 != 0) {\n          if (sStack_134 == 1) {\n            *_Var21._M_p = asStack_130[0]._0_1_;\n            _Var21._M_p = (pTVar2->name_)._M_dataplus._M_p;\n          }\n          else {\n            psStack_e8 = psVar14;\n            psStack_e4 = psVar26;\n            psStack_e0 = psVar12;\n            (**(code **)(pcVar33 + 0x1f1f3c))(_Var21._M_p,psVar14);\n            _Var21._M_p = (pTVar2->name_)._M_dataplus._M_p;\n            psVar14 = psStack_e8;\n            psVar12 = psStack_e0;\n            psVar26 = psStack_e4;\n          }\n        }\n        (pTVar2->name_)._M_string_length = sStack_134;\n        *(_Var21._M_p + sStack_134) = '\0';\n        psVar13 = psVar14;\n        _Var21._M_p = _Stack_138._M_p;\n        sVar10 = asStack_130[0];\n      }\n      else {\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)_Var21._M_p == &(pTVar2->name_).field_2) {\n          (pTVar2->name_)._M_dataplus._M_p = _Stack_138._M_p;\n          (pTVar2->name_)._M_string_length = sStack_134;\n          (pTVar2->name_).field_2._M_allocated_capacity = asStack_130[0];\n        }\n        else {\n          sVar10 = (pTVar2->name_).field_2._M_allocated_capacity;\n          (pTVar2->name_)._M_dataplus._M_p = _Stack_138._M_p;\n          (pTVar2->name_)._M_string_length = sStack_134;\n          (pTVar2->name_).field_2._M_allocated_capacity = asStack_130[0];\n          psVar13 = psVar14;\n          _Stack_138._M_p = _Var21._M_p;\n          if ((size_type *)_Var21._M_p != (size_type *)0x0) goto LAB_002d4130;\n        }\n        psVar13 = asStack_130;\n        _Var21._M_p = (pointer)asStack_130;\n        _Stack_138._M_p = (pointer)psVar14;\n        sVar10 = asStack_130[0];\n      }\nLAB_002d4130:\n      asStack_130[0] = sVar10;\n      sStack_134 = 0;\n      *_Var21._M_p = '\0';\n      if ((size_type *)_Stack_138._M_p != psVar13) {\n        psStack_e8 = psVar26;\n        psStack_e4 = psVar12;\n        (**(code **)(pcVar33 + 0x1ed690))();\n        psVar12 = psStack_e4;\n        psVar26 = psStack_e8;\n      }\n    }" { (expression_statement "psVar12 = asStack_130;" (assignment_expression "psVar12 = asStack_130" identifier = identifier) ;) (if_statement "if (pTVar2->_vptr_Task[5] == p_Stack_f4) {\n        psStack_e8 = (size_type *)pTVar2[1].name_._M_dataplus._M_p;\n        _Stack_138._M_p = (pointer)psVar12;\n        if (psStack_e8 == (size_type *)0x0) {\n          pcVar23 = (pointer)0xffffffff;\n          psStack_e0 = (size_type *)TStack_10c.sys;\n          psStack_e4 = (size_type *)TStack_10c.wall;\n        }\n        else {\n          psStack_e0 = (size_type *)TStack_10c.sys;\n          psStack_e4 = (size_type *)TStack_10c.wall;\n          psStack_dc = psVar12;\n          iVar7 = (**(code **)(pcVar33 + 0x1f1f30))(psStack_e8);\n          pcVar23 = (pointer)((int)psStack_e8 + iVar7);\n          psVar12 = psStack_dc;\n        }\n        pcVar25 = (pointer)psStack_e8;\n        psStack_e8 = psStack_e4;\n        psStack_e4 = psStack_e0;\n        psStack_e0 = psVar12;\n        (**(code **)(pcVar33 + 0x1edefc))(&_Stack_138,pcVar25,pcVar23,0);\n        psVar14 = psStack_e0;\n        psVar12 = psStack_e4;\n        psVar26 = psStack_e8;\n      }\n      else {\n        psStack_e0 = (size_type *)TStack_10c.sys;\n        psStack_e4 = (size_type *)TStack_10c.wall;\n        psStack_e8 = psVar12;\n        (*pTVar2->_vptr_Task[5])(&_Stack_138,pTVar2);\n        psVar14 = psStack_e8;\n        psVar12 = psStack_e0;\n        psVar26 = psStack_e4;\n      }" if (parenthesized_expression "(pTVar2->_vptr_Task[5] == p_Stack_f4)" ( (binary_expression "pTVar2->_vptr_Task[5] == p_Stack_f4" (subscript_expression "pTVar2->_vptr_Task[5]" (field_expression "pTVar2->_vptr_Task" identifier -> field_identifier) [ number_literal ]) == identifier) )) (compound_statement "{\n        psStack_e8 = (size_type *)pTVar2[1].name_._M_dataplus._M_p;\n        _Stack_138._M_p = (pointer)psVar12;\n        if (psStack_e8 == (size_type *)0x0) {\n          pcVar23 = (pointer)0xffffffff;\n          psStack_e0 = (size_type *)TStack_10c.sys;\n          psStack_e4 = (size_type *)TStack_10c.wall;\n        }\n        else {\n          psStack_e0 = (size_type *)TStack_10c.sys;\n          psStack_e4 = (size_type *)TStack_10c.wall;\n          psStack_dc = psVar12;\n          iVar7 = (**(code **)(pcVar33 + 0x1f1f30))(psStack_e8);\n          pcVar23 = (pointer)((int)psStack_e8 + iVar7);\n          psVar12 = psStack_dc;\n        }\n        pcVar25 = (pointer)psStack_e8;\n        psStack_e8 = psStack_e4;\n        psStack_e4 = psStack_e0;\n        psStack_e0 = psVar12;\n        (**(code **)(pcVar33 + 0x1edefc))(&_Stack_138,pcVar25,pcVar23,0);\n        psVar14 = psStack_e0;\n        psVar12 = psStack_e4;\n        psVar26 = psStack_e8;\n      }" { (expression_statement "psStack_e8 = (size_type *)pTVar2[1].name_._M_dataplus._M_p;" (assignment_expression "psStack_e8 = (size_type *)pTVar2[1].name_._M_dataplus._M_p" identifier = (cast_expression "(size_type *)pTVar2[1].name_._M_dataplus._M_p" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pTVar2[1].name_._M_dataplus._M_p" (field_expression "pTVar2[1].name_._M_dataplus" (field_expression "pTVar2[1].name_" (subscript_expression "pTVar2[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) . field_identifier))) ;) (expression_statement "_Stack_138._M_p = (pointer)psVar12;" (assignment_expression "_Stack_138._M_p = (pointer)psVar12" (field_expression "_Stack_138._M_p" identifier . field_identifier) = (cast_expression "(pointer)psVar12" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (if_statement "if (psStack_e8 == (size_type *)0x0) {\n          pcVar23 = (pointer)0xffffffff;\n          psStack_e0 = (size_type *)TStack_10c.sys;\n          psStack_e4 = (size_type *)TStack_10c.wall;\n        }\n        else {\n          psStack_e0 = (size_type *)TStack_10c.sys;\n          psStack_e4 = (size_type *)TStack_10c.wall;\n          psStack_dc = psVar12;\n          iVar7 = (**(code **)(pcVar33 + 0x1f1f30))(psStack_e8);\n          pcVar23 = (pointer)((int)psStack_e8 + iVar7);\n          psVar12 = psStack_dc;\n        }" if (parenthesized_expression "(psStack_e8 == (size_type *)0x0)" ( (binary_expression "psStack_e8 == (size_type *)0x0" identifier == (cast_expression "(size_type *)0x0" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pcVar23 = (pointer)0xffffffff;\n          psStack_e0 = (size_type *)TStack_10c.sys;\n          psStack_e4 = (size_type *)TStack_10c.wall;\n        }" { (expression_statement "pcVar23 = (pointer)0xffffffff;" (assignment_expression "pcVar23 = (pointer)0xffffffff" identifier = (cast_expression "(pointer)0xffffffff" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "psStack_e0 = (size_type *)TStack_10c.sys;" (assignment_expression "psStack_e0 = (size_type *)TStack_10c.sys" identifier = (cast_expression "(size_type *)TStack_10c.sys" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "TStack_10c.sys" identifier . field_identifier))) ;) (expression_statement "psStack_e4 = (size_type *)TStack_10c.wall;" (assignment_expression "psStack_e4 = (size_type *)TStack_10c.wall" identifier = (cast_expression "(size_type *)TStack_10c.wall" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "TStack_10c.wall" identifier . field_identifier))) ;) }) (else_clause "else {\n          psStack_e0 = (size_type *)TStack_10c.sys;\n          psStack_e4 = (size_type *)TStack_10c.wall;\n          psStack_dc = psVar12;\n          iVar7 = (**(code **)(pcVar33 + 0x1f1f30))(psStack_e8);\n          pcVar23 = (pointer)((int)psStack_e8 + iVar7);\n          psVar12 = psStack_dc;\n        }" else (compound_statement "{\n          psStack_e0 = (size_type *)TStack_10c.sys;\n          psStack_e4 = (size_type *)TStack_10c.wall;\n          psStack_dc = psVar12;\n          iVar7 = (**(code **)(pcVar33 + 0x1f1f30))(psStack_e8);\n          pcVar23 = (pointer)((int)psStack_e8 + iVar7);\n          psVar12 = psStack_dc;\n        }" { (expression_statement "psStack_e0 = (size_type *)TStack_10c.sys;" (assignment_expression "psStack_e0 = (size_type *)TStack_10c.sys" identifier = (cast_expression "(size_type *)TStack_10c.sys" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "TStack_10c.sys" identifier . field_identifier))) ;) (expression_statement "psStack_e4 = (size_type *)TStack_10c.wall;" (assignment_expression "psStack_e4 = (size_type *)TStack_10c.wall" identifier = (cast_expression "(size_type *)TStack_10c.wall" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "TStack_10c.wall" identifier . field_identifier))) ;) (expression_statement "psStack_dc = psVar12;" (assignment_expression "psStack_dc = psVar12" identifier = identifier) ;) (expression_statement "iVar7 = (**(code **)(pcVar33 + 0x1f1f30))(psStack_e8);" (assignment_expression "iVar7 = (**(code **)(pcVar33 + 0x1f1f30))(psStack_e8)" identifier = (call_expression "(**(code **)(pcVar33 + 0x1f1f30))(psStack_e8)" (parenthesized_expression "(**(code **)(pcVar33 + 0x1f1f30))" ( (pointer_expression "**(code **)(pcVar33 + 0x1f1f30)" * (pointer_expression "*(code **)(pcVar33 + 0x1f1f30)" * (cast_expression "(code **)(pcVar33 + 0x1f1f30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1f1f30)" ( (binary_expression "pcVar33 + 0x1f1f30" identifier + number_literal) ))))) )) (argument_list "(psStack_e8)" ( identifier )))) ;) (expression_statement "pcVar23 = (pointer)((int)psStack_e8 + iVar7);" (assignment_expression "pcVar23 = (pointer)((int)psStack_e8 + iVar7)" identifier = (call_expression "(pointer)((int)psStack_e8 + iVar7)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((int)psStack_e8 + iVar7)" ( (binary_expression "(int)psStack_e8 + iVar7" (cast_expression "(int)psStack_e8" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "psVar12 = psStack_dc;" (assignment_expression "psVar12 = psStack_dc" identifier = identifier) ;) }))) (expression_statement "pcVar25 = (pointer)psStack_e8;" (assignment_expression "pcVar25 = (pointer)psStack_e8" identifier = (cast_expression "(pointer)psStack_e8" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "psStack_e8 = psStack_e4;" (assignment_expression "psStack_e8 = psStack_e4" identifier = identifier) ;) (expression_statement "psStack_e4 = psStack_e0;" (assignment_expression "psStack_e4 = psStack_e0" identifier = identifier) ;) (expression_statement "psStack_e0 = psVar12;" (assignment_expression "psStack_e0 = psVar12" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar33 + 0x1edefc))(&_Stack_138,pcVar25,pcVar23,0);" (call_expression "(**(code **)(pcVar33 + 0x1edefc))(&_Stack_138,pcVar25,pcVar23,0)" (parenthesized_expression "(**(code **)(pcVar33 + 0x1edefc))" ( (pointer_expression "**(code **)(pcVar33 + 0x1edefc)" * (pointer_expression "*(code **)(pcVar33 + 0x1edefc)" * (cast_expression "(code **)(pcVar33 + 0x1edefc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1edefc)" ( (binary_expression "pcVar33 + 0x1edefc" identifier + number_literal) ))))) )) (argument_list "(&_Stack_138,pcVar25,pcVar23,0)" ( (pointer_expression "&_Stack_138" & identifier) , identifier , identifier , number_literal ))) ;) (expression_statement "psVar14 = psStack_e0;" (assignment_expression "psVar14 = psStack_e0" identifier = identifier) ;) (expression_statement "psVar12 = psStack_e4;" (assignment_expression "psVar12 = psStack_e4" identifier = identifier) ;) (expression_statement "psVar26 = psStack_e8;" (assignment_expression "psVar26 = psStack_e8" identifier = identifier) ;) }) (else_clause "else {\n        psStack_e0 = (size_type *)TStack_10c.sys;\n        psStack_e4 = (size_type *)TStack_10c.wall;\n        psStack_e8 = psVar12;\n        (*pTVar2->_vptr_Task[5])(&_Stack_138,pTVar2);\n        psVar14 = psStack_e8;\n        psVar12 = psStack_e0;\n        psVar26 = psStack_e4;\n      }" else (compound_statement "{\n        psStack_e0 = (size_type *)TStack_10c.sys;\n        psStack_e4 = (size_type *)TStack_10c.wall;\n        psStack_e8 = psVar12;\n        (*pTVar2->_vptr_Task[5])(&_Stack_138,pTVar2);\n        psVar14 = psStack_e8;\n        psVar12 = psStack_e0;\n        psVar26 = psStack_e4;\n      }" { (expression_statement "psStack_e0 = (size_type *)TStack_10c.sys;" (assignment_expression "psStack_e0 = (size_type *)TStack_10c.sys" identifier = (cast_expression "(size_type *)TStack_10c.sys" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "TStack_10c.sys" identifier . field_identifier))) ;) (expression_statement "psStack_e4 = (size_type *)TStack_10c.wall;" (assignment_expression "psStack_e4 = (size_type *)TStack_10c.wall" identifier = (cast_expression "(size_type *)TStack_10c.wall" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "TStack_10c.wall" identifier . field_identifier))) ;) (expression_statement "psStack_e8 = psVar12;" (assignment_expression "psStack_e8 = psVar12" identifier = identifier) ;) (expression_statement "(*pTVar2->_vptr_Task[5])(&_Stack_138,pTVar2);" (call_expression "(*pTVar2->_vptr_Task[5])(&_Stack_138,pTVar2)" (parenthesized_expression "(*pTVar2->_vptr_Task[5])" ( (pointer_expression "*pTVar2->_vptr_Task[5]" * (subscript_expression "pTVar2->_vptr_Task[5]" (field_expression "pTVar2->_vptr_Task" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(&_Stack_138,pTVar2)" ( (pointer_expression "&_Stack_138" & identifier) , identifier ))) ;) (expression_statement "psVar14 = psStack_e8;" (assignment_expression "psVar14 = psStack_e8" identifier = identifier) ;) (expression_statement "psVar12 = psStack_e0;" (assignment_expression "psVar12 = psStack_e0" identifier = identifier) ;) (expression_statement "psVar26 = psStack_e4;" (assignment_expression "psVar26 = psStack_e4" identifier = identifier) ;) }))) (expression_statement "_Var21._M_p = (pTVar2->name_)._M_dataplus._M_p;" (assignment_expression "_Var21._M_p = (pTVar2->name_)._M_dataplus._M_p" (field_expression "_Var21._M_p" identifier . field_identifier) = (field_expression "(pTVar2->name_)._M_dataplus._M_p" (field_expression "(pTVar2->name_)._M_dataplus" (parenthesized_expression "(pTVar2->name_)" ( (field_expression "pTVar2->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if ((size_type *)_Stack_138._M_p == psVar14) {\n        if (sStack_134 != 0) {\n          if (sStack_134 == 1) {\n            *_Var21._M_p = asStack_130[0]._0_1_;\n            _Var21._M_p = (pTVar2->name_)._M_dataplus._M_p;\n          }\n          else {\n            psStack_e8 = psVar14;\n            psStack_e4 = psVar26;\n            psStack_e0 = psVar12;\n            (**(code **)(pcVar33 + 0x1f1f3c))(_Var21._M_p,psVar14);\n            _Var21._M_p = (pTVar2->name_)._M_dataplus._M_p;\n            psVar14 = psStack_e8;\n            psVar12 = psStack_e0;\n            psVar26 = psStack_e4;\n          }\n        }\n        (pTVar2->name_)._M_string_length = sStack_134;\n        *(_Var21._M_p + sStack_134) = '\0';\n        psVar13 = psVar14;\n        _Var21._M_p = _Stack_138._M_p;\n        sVar10 = asStack_130[0];\n      }\n      else {\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)_Var21._M_p == &(pTVar2->name_).field_2) {\n          (pTVar2->name_)._M_dataplus._M_p = _Stack_138._M_p;\n          (pTVar2->name_)._M_string_length = sStack_134;\n          (pTVar2->name_).field_2._M_allocated_capacity = asStack_130[0];\n        }\n        else {\n          sVar10 = (pTVar2->name_).field_2._M_allocated_capacity;\n          (pTVar2->name_)._M_dataplus._M_p = _Stack_138._M_p;\n          (pTVar2->name_)._M_string_length = sStack_134;\n          (pTVar2->name_).field_2._M_allocated_capacity = asStack_130[0];\n          psVar13 = psVar14;\n          _Stack_138._M_p = _Var21._M_p;\n          if ((size_type *)_Var21._M_p != (size_type *)0x0) goto LAB_002d4130;\n        }\n        psVar13 = asStack_130;\n        _Var21._M_p = (pointer)asStack_130;\n        _Stack_138._M_p = (pointer)psVar14;\n        sVar10 = asStack_130[0];\n      }" if (parenthesized_expression "((size_type *)_Stack_138._M_p == psVar14)" ( (binary_expression "(size_type *)_Stack_138._M_p == psVar14" (cast_expression "(size_type *)_Stack_138._M_p" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Stack_138._M_p" identifier . field_identifier)) == identifier) )) (compound_statement "{\n        if (sStack_134 != 0) {\n          if (sStack_134 == 1) {\n            *_Var21._M_p = asStack_130[0]._0_1_;\n            _Var21._M_p = (pTVar2->name_)._M_dataplus._M_p;\n          }\n          else {\n            psStack_e8 = psVar14;\n            psStack_e4 = psVar26;\n            psStack_e0 = psVar12;\n            (**(code **)(pcVar33 + 0x1f1f3c))(_Var21._M_p,psVar14);\n            _Var21._M_p = (pTVar2->name_)._M_dataplus._M_p;\n            psVar14 = psStack_e8;\n            psVar12 = psStack_e0;\n            psVar26 = psStack_e4;\n          }\n        }\n        (pTVar2->name_)._M_string_length = sStack_134;\n        *(_Var21._M_p + sStack_134) = '\0';\n        psVar13 = psVar14;\n        _Var21._M_p = _Stack_138._M_p;\n        sVar10 = asStack_130[0];\n      }" { (if_statement "if (sStack_134 != 0) {\n          if (sStack_134 == 1) {\n            *_Var21._M_p = asStack_130[0]._0_1_;\n            _Var21._M_p = (pTVar2->name_)._M_dataplus._M_p;\n          }\n          else {\n            psStack_e8 = psVar14;\n            psStack_e4 = psVar26;\n            psStack_e0 = psVar12;\n            (**(code **)(pcVar33 + 0x1f1f3c))(_Var21._M_p,psVar14);\n            _Var21._M_p = (pTVar2->name_)._M_dataplus._M_p;\n            psVar14 = psStack_e8;\n            psVar12 = psStack_e0;\n            psVar26 = psStack_e4;\n          }\n        }" if (parenthesized_expression "(sStack_134 != 0)" ( (binary_expression "sStack_134 != 0" identifier != number_literal) )) (compound_statement "{\n          if (sStack_134 == 1) {\n            *_Var21._M_p = asStack_130[0]._0_1_;\n            _Var21._M_p = (pTVar2->name_)._M_dataplus._M_p;\n          }\n          else {\n            psStack_e8 = psVar14;\n            psStack_e4 = psVar26;\n            psStack_e0 = psVar12;\n            (**(code **)(pcVar33 + 0x1f1f3c))(_Var21._M_p,psVar14);\n            _Var21._M_p = (pTVar2->name_)._M_dataplus._M_p;\n            psVar14 = psStack_e8;\n            psVar12 = psStack_e0;\n            psVar26 = psStack_e4;\n          }\n        }" { (if_statement "if (sStack_134 == 1) {\n            *_Var21._M_p = asStack_130[0]._0_1_;\n            _Var21._M_p = (pTVar2->name_)._M_dataplus._M_p;\n          }\n          else {\n            psStack_e8 = psVar14;\n            psStack_e4 = psVar26;\n            psStack_e0 = psVar12;\n            (**(code **)(pcVar33 + 0x1f1f3c))(_Var21._M_p,psVar14);\n            _Var21._M_p = (pTVar2->name_)._M_dataplus._M_p;\n            psVar14 = psStack_e8;\n            psVar12 = psStack_e0;\n            psVar26 = psStack_e4;\n          }" if (parenthesized_expression "(sStack_134 == 1)" ( (binary_expression "sStack_134 == 1" identifier == number_literal) )) (compound_statement "{\n            *_Var21._M_p = asStack_130[0]._0_1_;\n            _Var21._M_p = (pTVar2->name_)._M_dataplus._M_p;\n          }" { (expression_statement "*_Var21._M_p = asStack_130[0]._0_1_;" (assignment_expression "*_Var21._M_p = asStack_130[0]._0_1_" (pointer_expression "*_Var21._M_p" * (field_expression "_Var21._M_p" identifier . field_identifier)) = (field_expression "asStack_130[0]._0_1_" (subscript_expression "asStack_130[0]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "_Var21._M_p = (pTVar2->name_)._M_dataplus._M_p;" (assignment_expression "_Var21._M_p = (pTVar2->name_)._M_dataplus._M_p" (field_expression "_Var21._M_p" identifier . field_identifier) = (field_expression "(pTVar2->name_)._M_dataplus._M_p" (field_expression "(pTVar2->name_)._M_dataplus" (parenthesized_expression "(pTVar2->name_)" ( (field_expression "pTVar2->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) }) (else_clause "else {\n            psStack_e8 = psVar14;\n            psStack_e4 = psVar26;\n            psStack_e0 = psVar12;\n            (**(code **)(pcVar33 + 0x1f1f3c))(_Var21._M_p,psVar14);\n            _Var21._M_p = (pTVar2->name_)._M_dataplus._M_p;\n            psVar14 = psStack_e8;\n            psVar12 = psStack_e0;\n            psVar26 = psStack_e4;\n          }" else (compound_statement "{\n            psStack_e8 = psVar14;\n            psStack_e4 = psVar26;\n            psStack_e0 = psVar12;\n            (**(code **)(pcVar33 + 0x1f1f3c))(_Var21._M_p,psVar14);\n            _Var21._M_p = (pTVar2->name_)._M_dataplus._M_p;\n            psVar14 = psStack_e8;\n            psVar12 = psStack_e0;\n            psVar26 = psStack_e4;\n          }" { (expression_statement "psStack_e8 = psVar14;" (assignment_expression "psStack_e8 = psVar14" identifier = identifier) ;) (expression_statement "psStack_e4 = psVar26;" (assignment_expression "psStack_e4 = psVar26" identifier = identifier) ;) (expression_statement "psStack_e0 = psVar12;" (assignment_expression "psStack_e0 = psVar12" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar33 + 0x1f1f3c))(_Var21._M_p,psVar14);" (call_expression "(**(code **)(pcVar33 + 0x1f1f3c))(_Var21._M_p,psVar14)" (parenthesized_expression "(**(code **)(pcVar33 + 0x1f1f3c))" ( (pointer_expression "**(code **)(pcVar33 + 0x1f1f3c)" * (pointer_expression "*(code **)(pcVar33 + 0x1f1f3c)" * (cast_expression "(code **)(pcVar33 + 0x1f1f3c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1f1f3c)" ( (binary_expression "pcVar33 + 0x1f1f3c" identifier + number_literal) ))))) )) (argument_list "(_Var21._M_p,psVar14)" ( (field_expression "_Var21._M_p" identifier . field_identifier) , identifier ))) ;) (expression_statement "_Var21._M_p = (pTVar2->name_)._M_dataplus._M_p;" (assignment_expression "_Var21._M_p = (pTVar2->name_)._M_dataplus._M_p" (field_expression "_Var21._M_p" identifier . field_identifier) = (field_expression "(pTVar2->name_)._M_dataplus._M_p" (field_expression "(pTVar2->name_)._M_dataplus" (parenthesized_expression "(pTVar2->name_)" ( (field_expression "pTVar2->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "psVar14 = psStack_e8;" (assignment_expression "psVar14 = psStack_e8" identifier = identifier) ;) (expression_statement "psVar12 = psStack_e0;" (assignment_expression "psVar12 = psStack_e0" identifier = identifier) ;) (expression_statement "psVar26 = psStack_e4;" (assignment_expression "psVar26 = psStack_e4" identifier = identifier) ;) }))) })) (expression_statement "(pTVar2->name_)._M_string_length = sStack_134;" (assignment_expression "(pTVar2->name_)._M_string_length = sStack_134" (field_expression "(pTVar2->name_)._M_string_length" (parenthesized_expression "(pTVar2->name_)" ( (field_expression "pTVar2->name_" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "*(_Var21._M_p + sStack_134) = '\0';" (assignment_expression "*(_Var21._M_p + sStack_134) = '\0'" (pointer_expression "*(_Var21._M_p + sStack_134)" * (parenthesized_expression "(_Var21._M_p + sStack_134)" ( (binary_expression "_Var21._M_p + sStack_134" (field_expression "_Var21._M_p" identifier . field_identifier) + identifier) ))) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "psVar13 = psVar14;" (assignment_expression "psVar13 = psVar14" identifier = identifier) ;) (expression_statement "_Var21._M_p = _Stack_138._M_p;" (assignment_expression "_Var21._M_p = _Stack_138._M_p" (field_expression "_Var21._M_p" identifier . field_identifier) = (field_expression "_Stack_138._M_p" identifier . field_identifier)) ;) (expression_statement "sVar10 = asStack_130[0];" (assignment_expression "sVar10 = asStack_130[0]" identifier = (subscript_expression "asStack_130[0]" identifier [ number_literal ])) ;) }) (else_clause "else {\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)_Var21._M_p == &(pTVar2->name_).field_2) {\n          (pTVar2->name_)._M_dataplus._M_p = _Stack_138._M_p;\n          (pTVar2->name_)._M_string_length = sStack_134;\n          (pTVar2->name_).field_2._M_allocated_capacity = asStack_130[0];\n        }\n        else {\n          sVar10 = (pTVar2->name_).field_2._M_allocated_capacity;\n          (pTVar2->name_)._M_dataplus._M_p = _Stack_138._M_p;\n          (pTVar2->name_)._M_string_length = sStack_134;\n          (pTVar2->name_).field_2._M_allocated_capacity = asStack_130[0];\n          psVar13 = psVar14;\n          _Stack_138._M_p = _Var21._M_p;\n          if ((size_type *)_Var21._M_p != (size_type *)0x0) goto LAB_002d4130;\n        }\n        psVar13 = asStack_130;\n        _Var21._M_p = (pointer)asStack_130;\n        _Stack_138._M_p = (pointer)psVar14;\n        sVar10 = asStack_130[0];\n      }" else (compound_statement "{\n        if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)_Var21._M_p == &(pTVar2->name_).field_2) {\n          (pTVar2->name_)._M_dataplus._M_p = _Stack_138._M_p;\n          (pTVar2->name_)._M_string_length = sStack_134;\n          (pTVar2->name_).field_2._M_allocated_capacity = asStack_130[0];\n        }\n        else {\n          sVar10 = (pTVar2->name_).field_2._M_allocated_capacity;\n          (pTVar2->name_)._M_dataplus._M_p = _Stack_138._M_p;\n          (pTVar2->name_)._M_string_length = sStack_134;\n          (pTVar2->name_).field_2._M_allocated_capacity = asStack_130[0];\n          psVar13 = psVar14;\n          _Stack_138._M_p = _Var21._M_p;\n          if ((size_type *)_Var21._M_p != (size_type *)0x0) goto LAB_002d4130;\n        }\n        psVar13 = asStack_130;\n        _Var21._M_p = (pointer)asStack_130;\n        _Stack_138._M_p = (pointer)psVar14;\n        sVar10 = asStack_130[0];\n      }" { (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)_Var21._M_p == &(pTVar2->name_).field_2) {\n          (pTVar2->name_)._M_dataplus._M_p = _Stack_138._M_p;\n          (pTVar2->name_)._M_string_length = sStack_134;\n          (pTVar2->name_).field_2._M_allocated_capacity = asStack_130[0];\n        }\n        else {\n          sVar10 = (pTVar2->name_).field_2._M_allocated_capacity;\n          (pTVar2->name_)._M_dataplus._M_p = _Stack_138._M_p;\n          (pTVar2->name_)._M_string_length = sStack_134;\n          (pTVar2->name_).field_2._M_allocated_capacity = asStack_130[0];\n          psVar13 = psVar14;\n          _Stack_138._M_p = _Var21._M_p;\n          if ((size_type *)_Var21._M_p != (size_type *)0x0) goto LAB_002d4130;\n        }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)_Var21._M_p == &(pTVar2->name_).field_2)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n             *)_Var21._M_p == &(pTVar2->name_).field_2)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n             *)_Var21._M_p == &(pTVar2->name_).field_2" (binary_expression "allocator<char>_>_9\n             *)_Var21._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n             *)_Var21._M_p" identifier * (ERROR ")" )) (field_expression "_Var21._M_p" identifier . field_identifier))) == (pointer_expression "&(pTVar2->name_).field_2" & (field_expression "(pTVar2->name_).field_2" (parenthesized_expression "(pTVar2->name_)" ( (field_expression "pTVar2->name_" identifier -> field_identifier) )) . field_identifier))) )) )) (compound_statement "{\n          (pTVar2->name_)._M_dataplus._M_p = _Stack_138._M_p;\n          (pTVar2->name_)._M_string_length = sStack_134;\n          (pTVar2->name_).field_2._M_allocated_capacity = asStack_130[0];\n        }" { (expression_statement "(pTVar2->name_)._M_dataplus._M_p = _Stack_138._M_p;" (assignment_expression "(pTVar2->name_)._M_dataplus._M_p = _Stack_138._M_p" (field_expression "(pTVar2->name_)._M_dataplus._M_p" (field_expression "(pTVar2->name_)._M_dataplus" (parenthesized_expression "(pTVar2->name_)" ( (field_expression "pTVar2->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (field_expression "_Stack_138._M_p" identifier . field_identifier)) ;) (expression_statement "(pTVar2->name_)._M_string_length = sStack_134;" (assignment_expression "(pTVar2->name_)._M_string_length = sStack_134" (field_expression "(pTVar2->name_)._M_string_length" (parenthesized_expression "(pTVar2->name_)" ( (field_expression "pTVar2->name_" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(pTVar2->name_).field_2._M_allocated_capacity = asStack_130[0];" (assignment_expression "(pTVar2->name_).field_2._M_allocated_capacity = asStack_130[0]" (field_expression "(pTVar2->name_).field_2._M_allocated_capacity" (field_expression "(pTVar2->name_).field_2" (parenthesized_expression "(pTVar2->name_)" ( (field_expression "pTVar2->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (subscript_expression "asStack_130[0]" identifier [ number_literal ])) ;) }) (else_clause "else {\n          sVar10 = (pTVar2->name_).field_2._M_allocated_capacity;\n          (pTVar2->name_)._M_dataplus._M_p = _Stack_138._M_p;\n          (pTVar2->name_)._M_string_length = sStack_134;\n          (pTVar2->name_).field_2._M_allocated_capacity = asStack_130[0];\n          psVar13 = psVar14;\n          _Stack_138._M_p = _Var21._M_p;\n          if ((size_type *)_Var21._M_p != (size_type *)0x0) goto LAB_002d4130;\n        }" else (compound_statement "{\n          sVar10 = (pTVar2->name_).field_2._M_allocated_capacity;\n          (pTVar2->name_)._M_dataplus._M_p = _Stack_138._M_p;\n          (pTVar2->name_)._M_string_length = sStack_134;\n          (pTVar2->name_).field_2._M_allocated_capacity = asStack_130[0];\n          psVar13 = psVar14;\n          _Stack_138._M_p = _Var21._M_p;\n          if ((size_type *)_Var21._M_p != (size_type *)0x0) goto LAB_002d4130;\n        }" { (expression_statement "sVar10 = (pTVar2->name_).field_2._M_allocated_capacity;" (assignment_expression "sVar10 = (pTVar2->name_).field_2._M_allocated_capacity" identifier = (field_expression "(pTVar2->name_).field_2._M_allocated_capacity" (field_expression "(pTVar2->name_).field_2" (parenthesized_expression "(pTVar2->name_)" ( (field_expression "pTVar2->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "(pTVar2->name_)._M_dataplus._M_p = _Stack_138._M_p;" (assignment_expression "(pTVar2->name_)._M_dataplus._M_p = _Stack_138._M_p" (field_expression "(pTVar2->name_)._M_dataplus._M_p" (field_expression "(pTVar2->name_)._M_dataplus" (parenthesized_expression "(pTVar2->name_)" ( (field_expression "pTVar2->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (field_expression "_Stack_138._M_p" identifier . field_identifier)) ;) (expression_statement "(pTVar2->name_)._M_string_length = sStack_134;" (assignment_expression "(pTVar2->name_)._M_string_length = sStack_134" (field_expression "(pTVar2->name_)._M_string_length" (parenthesized_expression "(pTVar2->name_)" ( (field_expression "pTVar2->name_" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(pTVar2->name_).field_2._M_allocated_capacity = asStack_130[0];" (assignment_expression "(pTVar2->name_).field_2._M_allocated_capacity = asStack_130[0]" (field_expression "(pTVar2->name_).field_2._M_allocated_capacity" (field_expression "(pTVar2->name_).field_2" (parenthesized_expression "(pTVar2->name_)" ( (field_expression "pTVar2->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (subscript_expression "asStack_130[0]" identifier [ number_literal ])) ;) (expression_statement "psVar13 = psVar14;" (assignment_expression "psVar13 = psVar14" identifier = identifier) ;) (expression_statement "_Stack_138._M_p = _Var21._M_p;" (assignment_expression "_Stack_138._M_p = _Var21._M_p" (field_expression "_Stack_138._M_p" identifier . field_identifier) = (field_expression "_Var21._M_p" identifier . field_identifier)) ;) (if_statement "if ((size_type *)_Var21._M_p != (size_type *)0x0) goto LAB_002d4130;" if (parenthesized_expression "((size_type *)_Var21._M_p != (size_type *)0x0)" ( (binary_expression "(size_type *)_Var21._M_p != (size_type *)0x0" (cast_expression "(size_type *)_Var21._M_p" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var21._M_p" identifier . field_identifier)) != (cast_expression "(size_type *)0x0" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_002d4130;" goto statement_identifier ;)) }))) (expression_statement "psVar13 = asStack_130;" (assignment_expression "psVar13 = asStack_130" identifier = identifier) ;) (expression_statement "_Var21._M_p = (pointer)asStack_130;" (assignment_expression "_Var21._M_p = (pointer)asStack_130" (field_expression "_Var21._M_p" identifier . field_identifier) = (cast_expression "(pointer)asStack_130" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "_Stack_138._M_p = (pointer)psVar14;" (assignment_expression "_Stack_138._M_p = (pointer)psVar14" (field_expression "_Stack_138._M_p" identifier . field_identifier) = (cast_expression "(pointer)psVar14" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "sVar10 = asStack_130[0];" (assignment_expression "sVar10 = asStack_130[0]" identifier = (subscript_expression "asStack_130[0]" identifier [ number_literal ])) ;) }))) (labeled_statement "LAB_002d4130:\n      asStack_130[0] = sVar10;" statement_identifier : (expression_statement "asStack_130[0] = sVar10;" (assignment_expression "asStack_130[0] = sVar10" (subscript_expression "asStack_130[0]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "sStack_134 = 0;" (assignment_expression "sStack_134 = 0" identifier = number_literal) ;) (expression_statement "*_Var21._M_p = '\0';" (assignment_expression "*_Var21._M_p = '\0'" (pointer_expression "*_Var21._M_p" * (field_expression "_Var21._M_p" identifier . field_identifier)) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if ((size_type *)_Stack_138._M_p != psVar13) {\n        psStack_e8 = psVar26;\n        psStack_e4 = psVar12;\n        (**(code **)(pcVar33 + 0x1ed690))();\n        psVar12 = psStack_e4;\n        psVar26 = psStack_e8;\n      }" if (parenthesized_expression "((size_type *)_Stack_138._M_p != psVar13)" ( (binary_expression "(size_type *)_Stack_138._M_p != psVar13" (cast_expression "(size_type *)_Stack_138._M_p" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Stack_138._M_p" identifier . field_identifier)) != identifier) )) (compound_statement "{\n        psStack_e8 = psVar26;\n        psStack_e4 = psVar12;\n        (**(code **)(pcVar33 + 0x1ed690))();\n        psVar12 = psStack_e4;\n        psVar26 = psStack_e8;\n      }" { (expression_statement "psStack_e8 = psVar26;" (assignment_expression "psStack_e8 = psVar26" identifier = identifier) ;) (expression_statement "psStack_e4 = psVar12;" (assignment_expression "psStack_e4 = psVar12" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar33 + 0x1ed690))();" (call_expression "(**(code **)(pcVar33 + 0x1ed690))()" (parenthesized_expression "(**(code **)(pcVar33 + 0x1ed690))" ( (pointer_expression "**(code **)(pcVar33 + 0x1ed690)" * (pointer_expression "*(code **)(pcVar33 + 0x1ed690)" * (cast_expression "(code **)(pcVar33 + 0x1ed690)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1ed690)" ( (binary_expression "pcVar33 + 0x1ed690" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "psVar12 = psStack_e4;" (assignment_expression "psVar12 = psStack_e4" identifier = identifier) ;) (expression_statement "psVar26 = psStack_e8;" (assignment_expression "psVar26 = psStack_e8" identifier = identifier) ;) })) })) (expression_statement "(**(code **)(pcVar33 + 0x1ee3ac))\n              (pcStack_f0,iStack_ec,iVar11,(pTVar2->name_)._M_dataplus._M_p,lVar1 / 1000,\n               (lVar1 % 1000) * 1000,(int)psVar12 / 1000,((int)psVar12 % 1000) * 1000,\n               (int)psVar26 / 1000,((int)psVar26 % 1000) * 1000);" (call_expression "(**(code **)(pcVar33 + 0x1ee3ac))\n              (pcStack_f0,iStack_ec,iVar11,(pTVar2->name_)._M_dataplus._M_p,lVar1 / 1000,\n               (lVar1 % 1000) * 1000,(int)psVar12 / 1000,((int)psVar12 % 1000) * 1000,\n               (int)psVar26 / 1000,((int)psVar26 % 1000) * 1000)" (parenthesized_expression "(**(code **)(pcVar33 + 0x1ee3ac))" ( (pointer_expression "**(code **)(pcVar33 + 0x1ee3ac)" * (pointer_expression "*(code **)(pcVar33 + 0x1ee3ac)" * (cast_expression "(code **)(pcVar33 + 0x1ee3ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1ee3ac)" ( (binary_expression "pcVar33 + 0x1ee3ac" identifier + number_literal) ))))) )) (argument_list "(pcStack_f0,iStack_ec,iVar11,(pTVar2->name_)._M_dataplus._M_p,lVar1 / 1000,\n               (lVar1 % 1000) * 1000,(int)psVar12 / 1000,((int)psVar12 % 1000) * 1000,\n               (int)psVar26 / 1000,((int)psVar26 % 1000) * 1000)" ( identifier , identifier , identifier , (field_expression "(pTVar2->name_)._M_dataplus._M_p" (field_expression "(pTVar2->name_)._M_dataplus" (parenthesized_expression "(pTVar2->name_)" ( (field_expression "pTVar2->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) , (binary_expression "lVar1 / 1000" identifier / number_literal) , (binary_expression "(lVar1 % 1000) * 1000" (parenthesized_expression "(lVar1 % 1000)" ( (binary_expression "lVar1 % 1000" identifier % number_literal) )) * number_literal) , (binary_expression "(int)psVar12 / 1000" (cast_expression "(int)psVar12" ( (type_descriptor "int" primitive_type) ) identifier) / number_literal) , (binary_expression "((int)psVar12 % 1000) * 1000" (parenthesized_expression "((int)psVar12 % 1000)" ( (binary_expression "(int)psVar12 % 1000" (cast_expression "(int)psVar12" ( (type_descriptor "int" primitive_type) ) identifier) % number_literal) )) * number_literal) , (binary_expression "(int)psVar26 / 1000" (cast_expression "(int)psVar26" ( (type_descriptor "int" primitive_type) ) identifier) / number_literal) , (binary_expression "((int)psVar26 % 1000) * 1000" (parenthesized_expression "((int)psVar26 % 1000)" ( (binary_expression "(int)psVar26 % 1000" (cast_expression "(int)psVar26" ( (type_descriptor "int" primitive_type) ) identifier) % number_literal) )) * number_literal) ))) ;) (expression_statement "pLVar5 = (this_00->lock_).lock_;" (assignment_expression "pLVar5 = (this_00->lock_).lock_" identifier = (field_expression "(this_00->lock_).lock_" (parenthesized_expression "(this_00->lock_)" ( (field_expression "this_00->lock_" identifier -> field_identifier) )) . field_identifier)) ;) }))) (expression_statement "(*pLVar5->_vptr_Lock_impl[2])(pLVar5);" (call_expression "(*pLVar5->_vptr_Lock_impl[2])(pLVar5)" (parenthesized_expression "(*pLVar5->_vptr_Lock_impl[2])" ( (pointer_expression "*pLVar5->_vptr_Lock_impl[2]" * (subscript_expression "pLVar5->_vptr_Lock_impl[2]" (field_expression "pLVar5->_vptr_Lock_impl" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(pLVar5)" ( identifier ))) ;) (expression_statement "this_00->running_ = this_00->running_ + -1;" (assignment_expression "this_00->running_ = this_00->running_ + -1" (field_expression "this_00->running_" identifier -> field_identifier) = (binary_expression "this_00->running_ + -1" (field_expression "this_00->running_" identifier -> field_identifier) + number_literal)) ;) (expression_statement "pTVar4 = (Task *)(*pcStack_100)(this_00,pTVar2,auStack_120);" (assignment_expression "pTVar4 = (Task *)(*pcStack_100)(this_00,pTVar2,auStack_120)" identifier = (cast_expression "(Task *)(*pcStack_100)(this_00,pTVar2,auStack_120)" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcStack_100)(this_00,pTVar2,auStack_120)" (parenthesized_expression "(*pcStack_100)" ( (pointer_expression "*pcStack_100" * identifier) )) (argument_list "(this_00,pTVar2,auStack_120)" ( identifier , identifier , identifier ))))) ;) (if_statement "if (pTVar4 == (Task *)0x0) {\n    pTVar4 = find_runnable(this_00);\n    if (pTVar4 != (Task *)0x0) {\n      pp_Var6 = pTVar4->_vptr_Task;\n      goto LAB_002d3db4;\n    }\n  }\n  else {\n    pp_Var6 = pTVar4->_vptr_Task;\nLAB_002d3db4:\n    auStack_120[0] = 0;\n    if (pp_Var6[3] == p_Var31) {\n      iVar7 = this_00->running_;\n    }\n    else {\n      (*pp_Var6[3])(pTVar4,auStack_120);\n      iVar7 = this_00->running_;\n    }\n    this_00->running_ = iVar7 + 1;\n  }" if (parenthesized_expression "(pTVar4 == (Task *)0x0)" ( (binary_expression "pTVar4 == (Task *)0x0" identifier == (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pTVar4 = find_runnable(this_00);\n    if (pTVar4 != (Task *)0x0) {\n      pp_Var6 = pTVar4->_vptr_Task;\n      goto LAB_002d3db4;\n    }\n  }" { (expression_statement "pTVar4 = find_runnable(this_00);" (assignment_expression "pTVar4 = find_runnable(this_00)" identifier = (call_expression "find_runnable(this_00)" identifier (argument_list "(this_00)" ( identifier )))) ;) (if_statement "if (pTVar4 != (Task *)0x0) {\n      pp_Var6 = pTVar4->_vptr_Task;\n      goto LAB_002d3db4;\n    }" if (parenthesized_expression "(pTVar4 != (Task *)0x0)" ( (binary_expression "pTVar4 != (Task *)0x0" identifier != (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pp_Var6 = pTVar4->_vptr_Task;\n      goto LAB_002d3db4;\n    }" { (expression_statement "pp_Var6 = pTVar4->_vptr_Task;" (assignment_expression "pp_Var6 = pTVar4->_vptr_Task" identifier = (field_expression "pTVar4->_vptr_Task" identifier -> field_identifier)) ;) (goto_statement "goto LAB_002d3db4;" goto statement_identifier ;) })) }) (else_clause "else {\n    pp_Var6 = pTVar4->_vptr_Task;\nLAB_002d3db4:\n    auStack_120[0] = 0;\n    if (pp_Var6[3] == p_Var31) {\n      iVar7 = this_00->running_;\n    }\n    else {\n      (*pp_Var6[3])(pTVar4,auStack_120);\n      iVar7 = this_00->running_;\n    }\n    this_00->running_ = iVar7 + 1;\n  }" else (compound_statement "{\n    pp_Var6 = pTVar4->_vptr_Task;\nLAB_002d3db4:\n    auStack_120[0] = 0;\n    if (pp_Var6[3] == p_Var31) {\n      iVar7 = this_00->running_;\n    }\n    else {\n      (*pp_Var6[3])(pTVar4,auStack_120);\n      iVar7 = this_00->running_;\n    }\n    this_00->running_ = iVar7 + 1;\n  }" { (expression_statement "pp_Var6 = pTVar4->_vptr_Task;" (assignment_expression "pp_Var6 = pTVar4->_vptr_Task" identifier = (field_expression "pTVar4->_vptr_Task" identifier -> field_identifier)) ;) (labeled_statement "LAB_002d3db4:\n    auStack_120[0] = 0;" statement_identifier : (expression_statement "auStack_120[0] = 0;" (assignment_expression "auStack_120[0] = 0" (subscript_expression "auStack_120[0]" identifier [ number_literal ]) = number_literal) ;)) (if_statement "if (pp_Var6[3] == p_Var31) {\n      iVar7 = this_00->running_;\n    }\n    else {\n      (*pp_Var6[3])(pTVar4,auStack_120);\n      iVar7 = this_00->running_;\n    }" if (parenthesized_expression "(pp_Var6[3] == p_Var31)" ( (binary_expression "pp_Var6[3] == p_Var31" (subscript_expression "pp_Var6[3]" identifier [ number_literal ]) == identifier) )) (compound_statement "{\n      iVar7 = this_00->running_;\n    }" { (expression_statement "iVar7 = this_00->running_;" (assignment_expression "iVar7 = this_00->running_" identifier = (field_expression "this_00->running_" identifier -> field_identifier)) ;) }) (else_clause "else {\n      (*pp_Var6[3])(pTVar4,auStack_120);\n      iVar7 = this_00->running_;\n    }" else (compound_statement "{\n      (*pp_Var6[3])(pTVar4,auStack_120);\n      iVar7 = this_00->running_;\n    }" { (expression_statement "(*pp_Var6[3])(pTVar4,auStack_120);" (call_expression "(*pp_Var6[3])(pTVar4,auStack_120)" (parenthesized_expression "(*pp_Var6[3])" ( (pointer_expression "*pp_Var6[3]" * (subscript_expression "pp_Var6[3]" identifier [ number_literal ])) )) (argument_list "(pTVar4,auStack_120)" ( identifier , identifier ))) ;) (expression_statement "iVar7 = this_00->running_;" (assignment_expression "iVar7 = this_00->running_" identifier = (field_expression "this_00->running_" identifier -> field_identifier)) ;) }))) (expression_statement "this_00->running_ = iVar7 + 1;" (assignment_expression "this_00->running_ = iVar7 + 1" (field_expression "this_00->running_" identifier -> field_identifier) = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) }))) (expression_statement "pLVar5 = (this_00->lock_).lock_;" (assignment_expression "pLVar5 = (this_00->lock_).lock_" identifier = (field_expression "(this_00->lock_).lock_" (parenthesized_expression "(this_00->lock_)" ( (field_expression "this_00->lock_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "(*pLVar5->_vptr_Lock_impl[3])(pLVar5);" (call_expression "(*pLVar5->_vptr_Lock_impl[3])(pLVar5)" (parenthesized_expression "(*pLVar5->_vptr_Lock_impl[3])" ( (pointer_expression "*pLVar5->_vptr_Lock_impl[3]" * (subscript_expression "pLVar5->_vptr_Lock_impl[3]" (field_expression "pLVar5->_vptr_Lock_impl" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(pLVar5)" ( identifier ))) ;) (if_statement "if (pTVar2->_vptr_Task[1] == *(_func_int_varargs **)(pcVar33 + 0x1f0ef8)) {\n    pTVar2->_vptr_Task = (_func_int_varargs **)(iVar22 + 8);\n    if (pTVar2[1]._vptr_Task != (_func_int_varargs **)0x0) {\n      (**(code **)(*pTVar2[1]._vptr_Task + 4))();\n    }\n    pTVar19 = pTVar2[1].list_next_;\n    iVar7 = *(int *)(pcVar33 + 0x1ee7e4);\n    if (pTVar19 != (Task *)0x0) {\n      iVar7 = 100;\n      if ((pTVar19->list_next_ != (Task *)0x0) ||\n         (iVar7 = 0x65, (pTVar19->name_)._M_dataplus._M_p != (pointer)0x0)) {\nLAB_002d4440:\n        pWVar15 = (Workqueue *)(*(int *)(pcVar33 + 0x1ed610) + -0x7f8);\n        (**(code **)(pcVar33 + 0x1eddc4))();\n        pLVar5 = (this_00->lock_).lock_;\n        (*pLVar5->_vptr_Lock_impl[3])(pLVar5);\n        (**(code **)(pcVar33 + 0x1ed65c))();\n        pLVar5 = (this_00->lock_).lock_;\n        (*pLVar5->_vptr_Lock_impl[3])(pLVar5);\n        (**(code **)(pcVar33 + 0x1ed65c))();\n        do {\n          bVar8 = find_and_run_task(pWVar15,iVar7);\n        } while (CONCAT31(extraout_var_00,bVar8) != 0);\n        return bVar8;\n      }\n      if (((pTVar19->name_)._M_string_length != 0) ||\n         ((pTVar19->name_).field_2._M_allocated_capacity != 0)) {\n        iVar7 = 0x2c;\n        (**(code **)(pcVar33 + 0x1eddc4))\n                  (*(int *)(pcVar33 + 0x1ed610) + -0x7f8,0x2c,*(int *)(pcVar33 + 0x1edcb0) + 0x3ae0)\n        ;\n        goto LAB_002d4440;\n      }\n      (**(code **)(pcVar33 + 0x1ed7b8))(pTVar19,0x14);\n      iVar7 = *(int *)(pcVar33 + 0x1ee7e4);\n    }\n    pcVar23 = (pTVar2->name_)._M_dataplus._M_p;\n    pTVar2->_vptr_Task = (_func_int_varargs **)(iVar7 + 8);\n    if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)pcVar23 != &(pTVar2->name_).field_2) {\n      (**(code **)(pcVar33 + 0x1ed690))();\n    }\n    (**(code **)(pcVar33 + 0x1ed7b8))(pTVar2,0x30);\n  }\n  else {\n    (*pTVar2->_vptr_Task[1])(pTVar2);\n  }" if (parenthesized_expression "(pTVar2->_vptr_Task[1] == *(_func_int_varargs **)(pcVar33 + 0x1f0ef8))" ( (binary_expression "pTVar2->_vptr_Task[1] == *(_func_int_varargs **)(pcVar33 + 0x1f0ef8)" (subscript_expression "pTVar2->_vptr_Task[1]" (field_expression "pTVar2->_vptr_Task" identifier -> field_identifier) [ number_literal ]) == (pointer_expression "*(_func_int_varargs **)(pcVar33 + 0x1f0ef8)" * (cast_expression "(_func_int_varargs **)(pcVar33 + 0x1f0ef8)" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1f0ef8)" ( (binary_expression "pcVar33 + 0x1f0ef8" identifier + number_literal) ))))) )) (compound_statement "{\n    pTVar2->_vptr_Task = (_func_int_varargs **)(iVar22 + 8);\n    if (pTVar2[1]._vptr_Task != (_func_int_varargs **)0x0) {\n      (**(code **)(*pTVar2[1]._vptr_Task + 4))();\n    }\n    pTVar19 = pTVar2[1].list_next_;\n    iVar7 = *(int *)(pcVar33 + 0x1ee7e4);\n    if (pTVar19 != (Task *)0x0) {\n      iVar7 = 100;\n      if ((pTVar19->list_next_ != (Task *)0x0) ||\n         (iVar7 = 0x65, (pTVar19->name_)._M_dataplus._M_p != (pointer)0x0)) {\nLAB_002d4440:\n        pWVar15 = (Workqueue *)(*(int *)(pcVar33 + 0x1ed610) + -0x7f8);\n        (**(code **)(pcVar33 + 0x1eddc4))();\n        pLVar5 = (this_00->lock_).lock_;\n        (*pLVar5->_vptr_Lock_impl[3])(pLVar5);\n        (**(code **)(pcVar33 + 0x1ed65c))();\n        pLVar5 = (this_00->lock_).lock_;\n        (*pLVar5->_vptr_Lock_impl[3])(pLVar5);\n        (**(code **)(pcVar33 + 0x1ed65c))();\n        do {\n          bVar8 = find_and_run_task(pWVar15,iVar7);\n        } while (CONCAT31(extraout_var_00,bVar8) != 0);\n        return bVar8;\n      }\n      if (((pTVar19->name_)._M_string_length != 0) ||\n         ((pTVar19->name_).field_2._M_allocated_capacity != 0)) {\n        iVar7 = 0x2c;\n        (**(code **)(pcVar33 + 0x1eddc4))\n                  (*(int *)(pcVar33 + 0x1ed610) + -0x7f8,0x2c,*(int *)(pcVar33 + 0x1edcb0) + 0x3ae0)\n        ;\n        goto LAB_002d4440;\n      }\n      (**(code **)(pcVar33 + 0x1ed7b8))(pTVar19,0x14);\n      iVar7 = *(int *)(pcVar33 + 0x1ee7e4);\n    }\n    pcVar23 = (pTVar2->name_)._M_dataplus._M_p;\n    pTVar2->_vptr_Task = (_func_int_varargs **)(iVar7 + 8);\n    if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)pcVar23 != &(pTVar2->name_).field_2) {\n      (**(code **)(pcVar33 + 0x1ed690))();\n    }\n    (**(code **)(pcVar33 + 0x1ed7b8))(pTVar2,0x30);\n  }" { (expression_statement "pTVar2->_vptr_Task = (_func_int_varargs **)(iVar22 + 8);" (assignment_expression "pTVar2->_vptr_Task = (_func_int_varargs **)(iVar22 + 8)" (field_expression "pTVar2->_vptr_Task" identifier -> field_identifier) = (cast_expression "(_func_int_varargs **)(iVar22 + 8)" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar22 + 8)" ( (binary_expression "iVar22 + 8" identifier + number_literal) )))) ;) (if_statement "if (pTVar2[1]._vptr_Task != (_func_int_varargs **)0x0) {\n      (**(code **)(*pTVar2[1]._vptr_Task + 4))();\n    }" if (parenthesized_expression "(pTVar2[1]._vptr_Task != (_func_int_varargs **)0x0)" ( (binary_expression "pTVar2[1]._vptr_Task != (_func_int_varargs **)0x0" (field_expression "pTVar2[1]._vptr_Task" (subscript_expression "pTVar2[1]" identifier [ number_literal ]) . field_identifier) != (cast_expression "(_func_int_varargs **)0x0" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n      (**(code **)(*pTVar2[1]._vptr_Task + 4))();\n    }" { (expression_statement "(**(code **)(*pTVar2[1]._vptr_Task + 4))();" (call_expression "(**(code **)(*pTVar2[1]._vptr_Task + 4))()" (parenthesized_expression "(**(code **)(*pTVar2[1]._vptr_Task + 4))" ( (pointer_expression "**(code **)(*pTVar2[1]._vptr_Task + 4)" * (pointer_expression "*(code **)(*pTVar2[1]._vptr_Task + 4)" * (cast_expression "(code **)(*pTVar2[1]._vptr_Task + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*pTVar2[1]._vptr_Task + 4)" ( (binary_expression "*pTVar2[1]._vptr_Task + 4" (pointer_expression "*pTVar2[1]._vptr_Task" * (field_expression "pTVar2[1]._vptr_Task" (subscript_expression "pTVar2[1]" identifier [ number_literal ]) . field_identifier)) + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "pTVar19 = pTVar2[1].list_next_;" (assignment_expression "pTVar19 = pTVar2[1].list_next_" identifier = (field_expression "pTVar2[1].list_next_" (subscript_expression "pTVar2[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "iVar7 = *(int *)(pcVar33 + 0x1ee7e4);" (assignment_expression "iVar7 = *(int *)(pcVar33 + 0x1ee7e4)" identifier = (pointer_expression "*(int *)(pcVar33 + 0x1ee7e4)" * (cast_expression "(int *)(pcVar33 + 0x1ee7e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x1ee7e4)" ( (binary_expression "pcVar33 + 0x1ee7e4" identifier + number_literal) ))))) ;) (if_statement "if (pTVar19 != (Task *)0x0) {\n      iVar7 = 100;\n      if ((pTVar19->list_next_ != (Task *)0x0) ||\n         (iVar7 = 0x65, (pTVar19->name_)._M_dataplus._M_p != (pointer)0x0)) {\nLAB_002d4440:\n        pWVar15 = (Workqueue *)(*(int *)(pcVar33 + 0x1ed610) + -0x7f8);\n        (**(code **)(pcVar33 + 0x1eddc4))();\n        pLVar5 = (this_00->lock_).lock_;\n        (*pLVar5->_vptr_Lock_impl[3])(pLVar5);\n        (**(code **)(pcVar33 + 0x1ed65c))();\n        pLVar5 = (this_00->lock_).lock_;\n        (*pLVar5->_vptr_Lock_impl[3])(pLVar5);\n        (**(code **)(pcVar33 + 0x1ed65c))();\n        do {\n          bVar8 = find_and_run_task(pWVar15,iVar7);\n        } while (CONCAT31(extraout_var_00,bVar8) != 0);\n        return bVar8;\n      }\n      if (((pTVar19->name_)._M_string_length != 0) ||\n         ((pTVar19->name_).field_2._M_allocated_capacity != 0)) {\n        iVar7 = 0x2c;\n        (**(code **)(pcVar33 + 0x1eddc4))\n                  (*(int *)(pcVar33 + 0x1ed610) + -0x7f8,0x2c,*(int *)(pcVar33 + 0x1edcb0) + 0x3ae0)\n        ;\n        goto LAB_002d4440;\n      }\n      (**(code **)(pcVar33 + 0x1ed7b8))(pTVar19,0x14);\n      iVar7 = *(int *)(pcVar33 + 0x1ee7e4);\n    }" if (parenthesized_expression "(pTVar19 != (Task *)0x0)" ( (binary_expression "pTVar19 != (Task *)0x0" identifier != (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar7 = 100;\n      if ((pTVar19->list_next_ != (Task *)0x0) ||\n         (iVar7 = 0x65, (pTVar19->name_)._M_dataplus._M_p != (pointer)0x0)) {\nLAB_002d4440:\n        pWVar15 = (Workqueue *)(*(int *)(pcVar33 + 0x1ed610) + -0x7f8);\n        (**(code **)(pcVar33 + 0x1eddc4))();\n        pLVar5 = (this_00->lock_).lock_;\n        (*pLVar5->_vptr_Lock_impl[3])(pLVar5);\n        (**(code **)(pcVar33 + 0x1ed65c))();\n        pLVar5 = (this_00->lock_).lock_;\n        (*pLVar5->_vptr_Lock_impl[3])(pLVar5);\n        (**(code **)(pcVar33 + 0x1ed65c))();\n        do {\n          bVar8 = find_and_run_task(pWVar15,iVar7);\n        } while (CONCAT31(extraout_var_00,bVar8) != 0);\n        return bVar8;\n      }\n      if (((pTVar19->name_)._M_string_length != 0) ||\n         ((pTVar19->name_).field_2._M_allocated_capacity != 0)) {\n        iVar7 = 0x2c;\n        (**(code **)(pcVar33 + 0x1eddc4))\n                  (*(int *)(pcVar33 + 0x1ed610) + -0x7f8,0x2c,*(int *)(pcVar33 + 0x1edcb0) + 0x3ae0)\n        ;\n        goto LAB_002d4440;\n      }\n      (**(code **)(pcVar33 + 0x1ed7b8))(pTVar19,0x14);\n      iVar7 = *(int *)(pcVar33 + 0x1ee7e4);\n    }" { (expression_statement "iVar7 = 100;" (assignment_expression "iVar7 = 100" identifier = number_literal) ;) (if_statement "if ((pTVar19->list_next_ != (Task *)0x0) ||\n         (iVar7 = 0x65, (pTVar19->name_)._M_dataplus._M_p != (pointer)0x0)) {\nLAB_002d4440:\n        pWVar15 = (Workqueue *)(*(int *)(pcVar33 + 0x1ed610) + -0x7f8);\n        (**(code **)(pcVar33 + 0x1eddc4))();\n        pLVar5 = (this_00->lock_).lock_;\n        (*pLVar5->_vptr_Lock_impl[3])(pLVar5);\n        (**(code **)(pcVar33 + 0x1ed65c))();\n        pLVar5 = (this_00->lock_).lock_;\n        (*pLVar5->_vptr_Lock_impl[3])(pLVar5);\n        (**(code **)(pcVar33 + 0x1ed65c))();\n        do {\n          bVar8 = find_and_run_task(pWVar15,iVar7);\n        } while (CONCAT31(extraout_var_00,bVar8) != 0);\n        return bVar8;\n      }" if (parenthesized_expression "((pTVar19->list_next_ != (Task *)0x0) ||\n         (iVar7 = 0x65, (pTVar19->name_)._M_dataplus._M_p != (pointer)0x0))" ( (binary_expression "(pTVar19->list_next_ != (Task *)0x0) ||\n         (iVar7 = 0x65, (pTVar19->name_)._M_dataplus._M_p != (pointer)0x0)" (parenthesized_expression "(pTVar19->list_next_ != (Task *)0x0)" ( (binary_expression "pTVar19->list_next_ != (Task *)0x0" (field_expression "pTVar19->list_next_" identifier -> field_identifier) != (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iVar7 = 0x65, (pTVar19->name_)._M_dataplus._M_p != (pointer)0x0)" ( (comma_expression "iVar7 = 0x65, (pTVar19->name_)._M_dataplus._M_p != (pointer)0x0" (assignment_expression "iVar7 = 0x65" identifier = number_literal) , (binary_expression "(pTVar19->name_)._M_dataplus._M_p != (pointer)0x0" (field_expression "(pTVar19->name_)._M_dataplus._M_p" (field_expression "(pTVar19->name_)._M_dataplus" (parenthesized_expression "(pTVar19->name_)" ( (field_expression "pTVar19->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) != (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal))) ))) )) (compound_statement "{\nLAB_002d4440:\n        pWVar15 = (Workqueue *)(*(int *)(pcVar33 + 0x1ed610) + -0x7f8);\n        (**(code **)(pcVar33 + 0x1eddc4))();\n        pLVar5 = (this_00->lock_).lock_;\n        (*pLVar5->_vptr_Lock_impl[3])(pLVar5);\n        (**(code **)(pcVar33 + 0x1ed65c))();\n        pLVar5 = (this_00->lock_).lock_;\n        (*pLVar5->_vptr_Lock_impl[3])(pLVar5);\n        (**(code **)(pcVar33 + 0x1ed65c))();\n        do {\n          bVar8 = find_and_run_task(pWVar15,iVar7);\n        } while (CONCAT31(extraout_var_00,bVar8) != 0);\n        return bVar8;\n      }" { (labeled_statement "LAB_002d4440:\n        pWVar15 = (Workqueue *)(*(int *)(pcVar33 + 0x1ed610) + -0x7f8);" statement_identifier : (expression_statement "pWVar15 = (Workqueue *)(*(int *)(pcVar33 + 0x1ed610) + -0x7f8);" (assignment_expression "pWVar15 = (Workqueue *)(*(int *)(pcVar33 + 0x1ed610) + -0x7f8)" identifier = (cast_expression "(Workqueue *)(*(int *)(pcVar33 + 0x1ed610) + -0x7f8)" ( (type_descriptor "Workqueue *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar33 + 0x1ed610) + -0x7f8)" ( (binary_expression "*(int *)(pcVar33 + 0x1ed610) + -0x7f8" (pointer_expression "*(int *)(pcVar33 + 0x1ed610)" * (cast_expression "(int *)(pcVar33 + 0x1ed610)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x1ed610)" ( (binary_expression "pcVar33 + 0x1ed610" identifier + number_literal) )))) + number_literal) )))) ;)) (expression_statement "(**(code **)(pcVar33 + 0x1eddc4))();" (call_expression "(**(code **)(pcVar33 + 0x1eddc4))()" (parenthesized_expression "(**(code **)(pcVar33 + 0x1eddc4))" ( (pointer_expression "**(code **)(pcVar33 + 0x1eddc4)" * (pointer_expression "*(code **)(pcVar33 + 0x1eddc4)" * (cast_expression "(code **)(pcVar33 + 0x1eddc4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1eddc4)" ( (binary_expression "pcVar33 + 0x1eddc4" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pLVar5 = (this_00->lock_).lock_;" (assignment_expression "pLVar5 = (this_00->lock_).lock_" identifier = (field_expression "(this_00->lock_).lock_" (parenthesized_expression "(this_00->lock_)" ( (field_expression "this_00->lock_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "(*pLVar5->_vptr_Lock_impl[3])(pLVar5);" (call_expression "(*pLVar5->_vptr_Lock_impl[3])(pLVar5)" (parenthesized_expression "(*pLVar5->_vptr_Lock_impl[3])" ( (pointer_expression "*pLVar5->_vptr_Lock_impl[3]" * (subscript_expression "pLVar5->_vptr_Lock_impl[3]" (field_expression "pLVar5->_vptr_Lock_impl" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(pLVar5)" ( identifier ))) ;) (expression_statement "(**(code **)(pcVar33 + 0x1ed65c))();" (call_expression "(**(code **)(pcVar33 + 0x1ed65c))()" (parenthesized_expression "(**(code **)(pcVar33 + 0x1ed65c))" ( (pointer_expression "**(code **)(pcVar33 + 0x1ed65c)" * (pointer_expression "*(code **)(pcVar33 + 0x1ed65c)" * (cast_expression "(code **)(pcVar33 + 0x1ed65c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1ed65c)" ( (binary_expression "pcVar33 + 0x1ed65c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pLVar5 = (this_00->lock_).lock_;" (assignment_expression "pLVar5 = (this_00->lock_).lock_" identifier = (field_expression "(this_00->lock_).lock_" (parenthesized_expression "(this_00->lock_)" ( (field_expression "this_00->lock_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "(*pLVar5->_vptr_Lock_impl[3])(pLVar5);" (call_expression "(*pLVar5->_vptr_Lock_impl[3])(pLVar5)" (parenthesized_expression "(*pLVar5->_vptr_Lock_impl[3])" ( (pointer_expression "*pLVar5->_vptr_Lock_impl[3]" * (subscript_expression "pLVar5->_vptr_Lock_impl[3]" (field_expression "pLVar5->_vptr_Lock_impl" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(pLVar5)" ( identifier ))) ;) (expression_statement "(**(code **)(pcVar33 + 0x1ed65c))();" (call_expression "(**(code **)(pcVar33 + 0x1ed65c))()" (parenthesized_expression "(**(code **)(pcVar33 + 0x1ed65c))" ( (pointer_expression "**(code **)(pcVar33 + 0x1ed65c)" * (pointer_expression "*(code **)(pcVar33 + 0x1ed65c)" * (cast_expression "(code **)(pcVar33 + 0x1ed65c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1ed65c)" ( (binary_expression "pcVar33 + 0x1ed65c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (do_statement "do {\n          bVar8 = find_and_run_task(pWVar15,iVar7);\n        } while (CONCAT31(extraout_var_00,bVar8) != 0);" do (compound_statement "{\n          bVar8 = find_and_run_task(pWVar15,iVar7);\n        }" { (expression_statement "bVar8 = find_and_run_task(pWVar15,iVar7);" (assignment_expression "bVar8 = find_and_run_task(pWVar15,iVar7)" identifier = (call_expression "find_and_run_task(pWVar15,iVar7)" identifier (argument_list "(pWVar15,iVar7)" ( identifier , identifier )))) ;) }) while (parenthesized_expression "(CONCAT31(extraout_var_00,bVar8) != 0)" ( (binary_expression "CONCAT31(extraout_var_00,bVar8) != 0" (call_expression "CONCAT31(extraout_var_00,bVar8)" identifier (argument_list "(extraout_var_00,bVar8)" ( identifier , identifier ))) != number_literal) )) ;) (return_statement "return bVar8;" return identifier ;) })) (if_statement "if (((pTVar19->name_)._M_string_length != 0) ||\n         ((pTVar19->name_).field_2._M_allocated_capacity != 0)) {\n        iVar7 = 0x2c;\n        (**(code **)(pcVar33 + 0x1eddc4))\n                  (*(int *)(pcVar33 + 0x1ed610) + -0x7f8,0x2c,*(int *)(pcVar33 + 0x1edcb0) + 0x3ae0)\n        ;\n        goto LAB_002d4440;\n      }" if (parenthesized_expression "(((pTVar19->name_)._M_string_length != 0) ||\n         ((pTVar19->name_).field_2._M_allocated_capacity != 0))" ( (binary_expression "((pTVar19->name_)._M_string_length != 0) ||\n         ((pTVar19->name_).field_2._M_allocated_capacity != 0)" (parenthesized_expression "((pTVar19->name_)._M_string_length != 0)" ( (binary_expression "(pTVar19->name_)._M_string_length != 0" (field_expression "(pTVar19->name_)._M_string_length" (parenthesized_expression "(pTVar19->name_)" ( (field_expression "pTVar19->name_" identifier -> field_identifier) )) . field_identifier) != number_literal) )) || (parenthesized_expression "((pTVar19->name_).field_2._M_allocated_capacity != 0)" ( (binary_expression "(pTVar19->name_).field_2._M_allocated_capacity != 0" (field_expression "(pTVar19->name_).field_2._M_allocated_capacity" (field_expression "(pTVar19->name_).field_2" (parenthesized_expression "(pTVar19->name_)" ( (field_expression "pTVar19->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) != number_literal) ))) )) (compound_statement "{\n        iVar7 = 0x2c;\n        (**(code **)(pcVar33 + 0x1eddc4))\n                  (*(int *)(pcVar33 + 0x1ed610) + -0x7f8,0x2c,*(int *)(pcVar33 + 0x1edcb0) + 0x3ae0)\n        ;\n        goto LAB_002d4440;\n      }" { (expression_statement "iVar7 = 0x2c;" (assignment_expression "iVar7 = 0x2c" identifier = number_literal) ;) (expression_statement "(**(code **)(pcVar33 + 0x1eddc4))\n                  (*(int *)(pcVar33 + 0x1ed610) + -0x7f8,0x2c,*(int *)(pcVar33 + 0x1edcb0) + 0x3ae0)\n        ;" (call_expression "(**(code **)(pcVar33 + 0x1eddc4))\n                  (*(int *)(pcVar33 + 0x1ed610) + -0x7f8,0x2c,*(int *)(pcVar33 + 0x1edcb0) + 0x3ae0)" (parenthesized_expression "(**(code **)(pcVar33 + 0x1eddc4))" ( (pointer_expression "**(code **)(pcVar33 + 0x1eddc4)" * (pointer_expression "*(code **)(pcVar33 + 0x1eddc4)" * (cast_expression "(code **)(pcVar33 + 0x1eddc4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1eddc4)" ( (binary_expression "pcVar33 + 0x1eddc4" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar33 + 0x1ed610) + -0x7f8,0x2c,*(int *)(pcVar33 + 0x1edcb0) + 0x3ae0)" ( (binary_expression "*(int *)(pcVar33 + 0x1ed610) + -0x7f8" (pointer_expression "*(int *)(pcVar33 + 0x1ed610)" * (cast_expression "(int *)(pcVar33 + 0x1ed610)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x1ed610)" ( (binary_expression "pcVar33 + 0x1ed610" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar33 + 0x1edcb0) + 0x3ae0" (pointer_expression "*(int *)(pcVar33 + 0x1edcb0)" * (cast_expression "(int *)(pcVar33 + 0x1edcb0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x1edcb0)" ( (binary_expression "pcVar33 + 0x1edcb0" identifier + number_literal) )))) + number_literal) ))) ;) (goto_statement "goto LAB_002d4440;" goto statement_identifier ;) })) (expression_statement "(**(code **)(pcVar33 + 0x1ed7b8))(pTVar19,0x14);" (call_expression "(**(code **)(pcVar33 + 0x1ed7b8))(pTVar19,0x14)" (parenthesized_expression "(**(code **)(pcVar33 + 0x1ed7b8))" ( (pointer_expression "**(code **)(pcVar33 + 0x1ed7b8)" * (pointer_expression "*(code **)(pcVar33 + 0x1ed7b8)" * (cast_expression "(code **)(pcVar33 + 0x1ed7b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1ed7b8)" ( (binary_expression "pcVar33 + 0x1ed7b8" identifier + number_literal) ))))) )) (argument_list "(pTVar19,0x14)" ( identifier , number_literal ))) ;) (expression_statement "iVar7 = *(int *)(pcVar33 + 0x1ee7e4);" (assignment_expression "iVar7 = *(int *)(pcVar33 + 0x1ee7e4)" identifier = (pointer_expression "*(int *)(pcVar33 + 0x1ee7e4)" * (cast_expression "(int *)(pcVar33 + 0x1ee7e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar33 + 0x1ee7e4)" ( (binary_expression "pcVar33 + 0x1ee7e4" identifier + number_literal) ))))) ;) })) (expression_statement "pcVar23 = (pTVar2->name_)._M_dataplus._M_p;" (assignment_expression "pcVar23 = (pTVar2->name_)._M_dataplus._M_p" identifier = (field_expression "(pTVar2->name_)._M_dataplus._M_p" (field_expression "(pTVar2->name_)._M_dataplus" (parenthesized_expression "(pTVar2->name_)" ( (field_expression "pTVar2->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "pTVar2->_vptr_Task = (_func_int_varargs **)(iVar7 + 8);" (assignment_expression "pTVar2->_vptr_Task = (_func_int_varargs **)(iVar7 + 8)" (field_expression "pTVar2->_vptr_Task" identifier -> field_identifier) = (cast_expression "(_func_int_varargs **)(iVar7 + 8)" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 8)" ( (binary_expression "iVar7 + 8" identifier + number_literal) )))) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)pcVar23 != &(pTVar2->name_).field_2) {\n      (**(code **)(pcVar33 + 0x1ed690))();\n    }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)pcVar23 != &(pTVar2->name_).field_2)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n         *)pcVar23 != &(pTVar2->name_).field_2)" ( (ERROR "anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::" (comma_expression "anon_union_16_2_edb7204a_for_basic_string<char,_std" (binary_expression "anon_union_16_2_edb7204a_for_basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char>,_std" (binary_expression "char_traits<char" identifier < identifier) > (ERROR "," ,) identifier) : :) (binary_expression "allocator<char>_>_9\n         *)pcVar23 != &(pTVar2->name_).field_2" (binary_expression "allocator<char>_>_9\n         *)pcVar23" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n         *)pcVar23" identifier * (ERROR ")" )) identifier)) != (pointer_expression "&(pTVar2->name_).field_2" & (field_expression "(pTVar2->name_).field_2" (parenthesized_expression "(pTVar2->name_)" ( (field_expression "pTVar2->name_" identifier -> field_identifier) )) . field_identifier))) )) )) (compound_statement "{\n      (**(code **)(pcVar33 + 0x1ed690))();\n    }" { (expression_statement "(**(code **)(pcVar33 + 0x1ed690))();" (call_expression "(**(code **)(pcVar33 + 0x1ed690))()" (parenthesized_expression "(**(code **)(pcVar33 + 0x1ed690))" ( (pointer_expression "**(code **)(pcVar33 + 0x1ed690)" * (pointer_expression "*(code **)(pcVar33 + 0x1ed690)" * (cast_expression "(code **)(pcVar33 + 0x1ed690)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1ed690)" ( (binary_expression "pcVar33 + 0x1ed690" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "(**(code **)(pcVar33 + 0x1ed7b8))(pTVar2,0x30);" (call_expression "(**(code **)(pcVar33 + 0x1ed7b8))(pTVar2,0x30)" (parenthesized_expression "(**(code **)(pcVar33 + 0x1ed7b8))" ( (pointer_expression "**(code **)(pcVar33 + 0x1ed7b8)" * (pointer_expression "*(code **)(pcVar33 + 0x1ed7b8)" * (cast_expression "(code **)(pcVar33 + 0x1ed7b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar33 + 0x1ed7b8)" ( (binary_expression "pcVar33 + 0x1ed7b8" identifier + number_literal) ))))) )) (argument_list "(pTVar2,0x30)" ( identifier , number_literal ))) ;) }) (else_clause "else {\n    (*pTVar2->_vptr_Task[1])(pTVar2);\n  }" else (compound_statement "{\n    (*pTVar2->_vptr_Task[1])(pTVar2);\n  }" { (expression_statement "(*pTVar2->_vptr_Task[1])(pTVar2);" (call_expression "(*pTVar2->_vptr_Task[1])(pTVar2)" (parenthesized_expression "(*pTVar2->_vptr_Task[1])" ( (pointer_expression "*pTVar2->_vptr_Task[1]" * (subscript_expression "pTVar2->_vptr_Task[1]" (field_expression "pTVar2->_vptr_Task" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(pTVar2)" ( identifier ))) ;) }))) (expression_statement "pTVar2 = pTVar4;" (assignment_expression "pTVar2 = pTVar4" identifier = identifier) ;) (if_statement "if (pTVar4 == (Task *)0x0) {\n    return true;\n  }" if (parenthesized_expression "(pTVar4 == (Task *)0x0)" ( (binary_expression "pTVar4 == (Task *)0x0" identifier == (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return true;\n  }" { (return_statement "return true;" return true ;) })) (goto_statement "goto LAB_002d3eac;" goto statement_identifier ;) })))
(translation_unit "undefined4 __thiscall\ngold::Workqueue::return_or_queue(Workqueue *this,Task *param_1,bool param_2,Task **param_3)\n\n{\n  char *pcVar1;\n  int iVar2;\n  int iVar3;\n  Workqueue *this_00;\n  int iVar4;\n  Task *pTVar5;\n  undefined4 uVar6;\n  undefined3 in_register_00000018;\n  int *piVar7;\n  int *piVar8;\n  undefined *puVar9;\n  Task *apTStack_48 [2];\n  Workqueue *pWStack_40;\n  \n  if (*(code **)(*(int *)param_1 + 8) == (code *)PTR_is_runnable_004c4b34) {\n    pcVar1 = *(char **)(param_1 + 0x28);\n    if (*pcVar1 != '\0') {\n      if (*(int *)(pcVar1 + 4) < 1) goto LAB_002d3724;\nLAB_002d36ac:\n      if (*(int *)(param_1 + 4) == 0) {\n        if (*(int *)(pcVar1 + 0xc) == 0) {\n          *(Task **)(pcVar1 + 0xc) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\nLAB_002d36dc:\n          *(int *)(this + 0x18) = *(int *)(this + 0x18) + 1;\n          return 0;\n        }\n        if (*(int *)(*(int *)(pcVar1 + 0x10) + 4) == 0) {\n          *(Task **)(*(int *)(pcVar1 + 0x10) + 4) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\n          goto LAB_002d36dc;\n        }\n        goto LAB_002d386c;\n      }\n      goto LAB_002d3834;\n    }\n  }\n  else {\n    pcVar1 = (char *)(**(code **)(*(int *)param_1 + 8))(param_1);\n    if (pcVar1 != (char *)0x0) goto LAB_002d36ac;\nLAB_002d3724:\n    if (*param_3 == (Task *)0x0) {\n      if (((CONCAT31(in_register_00000018,param_2) == 0) || (param_1[0x20] != (Task)0x0)) ||\n         ((*(int *)(this + 4) == 0 && (*(int *)(this + 0xc) == 0)))) {\n        *param_3 = param_1;\n        return 1;\n      }\n      iVar3 = *(int *)(param_1 + 4);\n    }\n    else {\n      iVar3 = *(int *)(param_1 + 4);\n      if (param_1[0x20] != (Task)0x0) {\n        if (iVar3 == 0) {\n          if (*(int *)(this + 4) == 0) {\n            *(Task **)(this + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          if (*(int *)(*(int *)(this + 8) + 4) == 0) {\n            *(Task **)(*(int *)(this + 8) + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }\n        goto LAB_002d3834;\n      }\n    }\n    if (iVar3 == 0) {\n      if (*(int *)(this + 0xc) == 0) {\n        *(Task **)(this + 0xc) = param_1;\n        *(Task **)(this + 0x10) = param_1;\nLAB_002d3768:\n        (**(code **)(**(int **)(this + 0x20) + 0xc))(*(int **)(this + 0x20));\n        return 0;\n      }\n      if (*(int *)(*(int *)(this + 0x10) + 4) == 0) {\n        *(Task **)(*(int *)(this + 0x10) + 4) = param_1;\n        *(Task **)(this + 0x10) = param_1;\n        goto LAB_002d3768;\n      }\n      goto LAB_002d386c;\n    }\nLAB_002d3834:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x39bc,0x29,\n               PTR_s_in_a_linker_script_004c191c + 0x3aac);\n  }\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x7f8,0xab,\n             PTR_s_in_a_linker_script_004c191c + 0x3ad4);\nLAB_002d386c:\n  iVar4 = 0x5a;\n  piVar7 = (int *)(PTR_s_in_a_linker_script_004c191c + 0x3ab8);\n  this_00 = (Workqueue *)(PTR_s__s_004c1a50 + 0x970);\n  puVar9 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)();\n  iVar3 = *piVar7;\n  piVar8 = piVar7 + 1;\n  apTStack_48[0] = (Task *)0x0;\n  if (piVar8 == piVar7 + iVar3 + 1) {\n    apTStack_48[0] = (Task *)0x0;\n  }\n  else {\n    pWStack_40 = this;\n    do {\n      while (pcVar1 = (char *)*piVar8, *pcVar1 != '\0') {\n        iVar2 = *(int *)(pcVar1 + 4) + -1;\n        if (*(int *)(pcVar1 + 4) < 1) {\n          uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                            (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0xa1,\n                             *(int *)(puVar9 + 0x1ee098) + 0x3a6c);\n          return uVar6;\n        }\n        pcVar1[8] = '\0';\n        pcVar1[9] = '\0';\n        pcVar1[10] = '\0';\n        pcVar1[0xb] = '\0';\n        *(int *)(pcVar1 + 4) = iVar2;\n        if ((iVar2 == 0) && (pTVar5 = *(Task **)(pcVar1 + 0xc), pTVar5 != (Task *)0x0)) {\n          iVar3 = *(int *)(pTVar5 + 4);\n          if (*(Task **)(pcVar1 + 0x10) == pTVar5) goto LAB_002d3a40;\n          while (*(int *)(pcVar1 + 0xc) = iVar3, iVar3 != 0) {\n            *(undefined4 *)(pTVar5 + 4) = 0;\n            while( true ) {\n              *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n              return_or_queue(this_00,pTVar5,true,apTStack_48);\n              pTVar5 = *(Task **)(pcVar1 + 0xc);\n              if (pTVar5 == (Task *)0x0) goto LAB_002d398c;\n              iVar3 = *(int *)(pTVar5 + 4);\n              if (*(Task **)(pcVar1 + 0x10) != pTVar5) break;\nLAB_002d3a40:\n              if (iVar3 != 0) goto LAB_002d3a94;\n              pcVar1[0xc] = '\0';\n              pcVar1[0xd] = '\0';\n              pcVar1[0xe] = '\0';\n              pcVar1[0xf] = '\0';\n              pcVar1[0x10] = '\0';\n              pcVar1[0x11] = '\0';\n              pcVar1[0x12] = '\0';\n              pcVar1[0x13] = '\0';\n            }\n          }\nLAB_002d3a5c:\n          uVar6 = 0x5a;\n          goto LAB_002d3a60;\n        }\n        piVar8 = piVar8 + 1;\n        if (piVar8 == piVar7 + iVar3 + 1) {\n          return apTStack_48[0];\n        }\n      }\n      if (iVar4 != *(int *)(pcVar1 + 8)) {\n        uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                          (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0x84,\n                           *(int *)(puVar9 + 0x1ee098) + 0x3a5c);\n        return uVar6;\n      }\n      pcVar1[8] = '\0';\n      pcVar1[9] = '\0';\n      pcVar1[10] = '\0';\n      pcVar1[0xb] = '\0';\n      do {\n        pTVar5 = *(Task **)(pcVar1 + 0xc);\n        if (pTVar5 == (Task *)0x0) break;\n        iVar3 = *(int *)(pTVar5 + 4);\n        if (pTVar5 == *(Task **)(pcVar1 + 0x10)) {\n          if (iVar3 != 0) goto LAB_002d3a94;\n          pcVar1[0xc] = '\0';\n          pcVar1[0xd] = '\0';\n          pcVar1[0xe] = '\0';\n          pcVar1[0xf] = '\0';\n          pcVar1[0x10] = '\0';\n          pcVar1[0x11] = '\0';\n          pcVar1[0x12] = '\0';\n          pcVar1[0x13] = '\0';\n        }\n        else {\n          *(int *)(pcVar1 + 0xc) = iVar3;\n          if (iVar3 == 0) goto LAB_002d3a5c;\n          *(undefined4 *)(pTVar5 + 4) = 0;\n        }\n        *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n        iVar3 = return_or_queue(this_00,pTVar5,false,apTStack_48);\n      } while (iVar3 == 0);\nLAB_002d398c:\n      iVar3 = *piVar7;\n      piVar8 = piVar8 + 1;\n    } while (piVar8 != piVar7 + iVar3 + 1);\n  }\n  return apTStack_48[0];\nLAB_002d3a94:\n  uVar6 = 0x53;\nLAB_002d3a60:\n  uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                    (*(int *)(puVar9 + 0x1ee098) + 0x39bc,uVar6,*(int *)(puVar9 + 0x1ee098) + 0x3aa0\n                    );\n  return uVar6;\n}\n\n" (function_definition "undefined4 __thiscall\ngold::Workqueue::return_or_queue(Workqueue *this,Task *param_1,bool param_2,Task **param_3)\n\n{\n  char *pcVar1;\n  int iVar2;\n  int iVar3;\n  Workqueue *this_00;\n  int iVar4;\n  Task *pTVar5;\n  undefined4 uVar6;\n  undefined3 in_register_00000018;\n  int *piVar7;\n  int *piVar8;\n  undefined *puVar9;\n  Task *apTStack_48 [2];\n  Workqueue *pWStack_40;\n  \n  if (*(code **)(*(int *)param_1 + 8) == (code *)PTR_is_runnable_004c4b34) {\n    pcVar1 = *(char **)(param_1 + 0x28);\n    if (*pcVar1 != '\0') {\n      if (*(int *)(pcVar1 + 4) < 1) goto LAB_002d3724;\nLAB_002d36ac:\n      if (*(int *)(param_1 + 4) == 0) {\n        if (*(int *)(pcVar1 + 0xc) == 0) {\n          *(Task **)(pcVar1 + 0xc) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\nLAB_002d36dc:\n          *(int *)(this + 0x18) = *(int *)(this + 0x18) + 1;\n          return 0;\n        }\n        if (*(int *)(*(int *)(pcVar1 + 0x10) + 4) == 0) {\n          *(Task **)(*(int *)(pcVar1 + 0x10) + 4) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\n          goto LAB_002d36dc;\n        }\n        goto LAB_002d386c;\n      }\n      goto LAB_002d3834;\n    }\n  }\n  else {\n    pcVar1 = (char *)(**(code **)(*(int *)param_1 + 8))(param_1);\n    if (pcVar1 != (char *)0x0) goto LAB_002d36ac;\nLAB_002d3724:\n    if (*param_3 == (Task *)0x0) {\n      if (((CONCAT31(in_register_00000018,param_2) == 0) || (param_1[0x20] != (Task)0x0)) ||\n         ((*(int *)(this + 4) == 0 && (*(int *)(this + 0xc) == 0)))) {\n        *param_3 = param_1;\n        return 1;\n      }\n      iVar3 = *(int *)(param_1 + 4);\n    }\n    else {\n      iVar3 = *(int *)(param_1 + 4);\n      if (param_1[0x20] != (Task)0x0) {\n        if (iVar3 == 0) {\n          if (*(int *)(this + 4) == 0) {\n            *(Task **)(this + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          if (*(int *)(*(int *)(this + 8) + 4) == 0) {\n            *(Task **)(*(int *)(this + 8) + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }\n        goto LAB_002d3834;\n      }\n    }\n    if (iVar3 == 0) {\n      if (*(int *)(this + 0xc) == 0) {\n        *(Task **)(this + 0xc) = param_1;\n        *(Task **)(this + 0x10) = param_1;\nLAB_002d3768:\n        (**(code **)(**(int **)(this + 0x20) + 0xc))(*(int **)(this + 0x20));\n        return 0;\n      }\n      if (*(int *)(*(int *)(this + 0x10) + 4) == 0) {\n        *(Task **)(*(int *)(this + 0x10) + 4) = param_1;\n        *(Task **)(this + 0x10) = param_1;\n        goto LAB_002d3768;\n      }\n      goto LAB_002d386c;\n    }\nLAB_002d3834:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x39bc,0x29,\n               PTR_s_in_a_linker_script_004c191c + 0x3aac);\n  }\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x7f8,0xab,\n             PTR_s_in_a_linker_script_004c191c + 0x3ad4);\nLAB_002d386c:\n  iVar4 = 0x5a;\n  piVar7 = (int *)(PTR_s_in_a_linker_script_004c191c + 0x3ab8);\n  this_00 = (Workqueue *)(PTR_s__s_004c1a50 + 0x970);\n  puVar9 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)();\n  iVar3 = *piVar7;\n  piVar8 = piVar7 + 1;\n  apTStack_48[0] = (Task *)0x0;\n  if (piVar8 == piVar7 + iVar3 + 1) {\n    apTStack_48[0] = (Task *)0x0;\n  }\n  else {\n    pWStack_40 = this;\n    do {\n      while (pcVar1 = (char *)*piVar8, *pcVar1 != '\0') {\n        iVar2 = *(int *)(pcVar1 + 4) + -1;\n        if (*(int *)(pcVar1 + 4) < 1) {\n          uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                            (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0xa1,\n                             *(int *)(puVar9 + 0x1ee098) + 0x3a6c);\n          return uVar6;\n        }\n        pcVar1[8] = '\0';\n        pcVar1[9] = '\0';\n        pcVar1[10] = '\0';\n        pcVar1[0xb] = '\0';\n        *(int *)(pcVar1 + 4) = iVar2;\n        if ((iVar2 == 0) && (pTVar5 = *(Task **)(pcVar1 + 0xc), pTVar5 != (Task *)0x0)) {\n          iVar3 = *(int *)(pTVar5 + 4);\n          if (*(Task **)(pcVar1 + 0x10) == pTVar5) goto LAB_002d3a40;\n          while (*(int *)(pcVar1 + 0xc) = iVar3, iVar3 != 0) {\n            *(undefined4 *)(pTVar5 + 4) = 0;\n            while( true ) {\n              *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n              return_or_queue(this_00,pTVar5,true,apTStack_48);\n              pTVar5 = *(Task **)(pcVar1 + 0xc);\n              if (pTVar5 == (Task *)0x0) goto LAB_002d398c;\n              iVar3 = *(int *)(pTVar5 + 4);\n              if (*(Task **)(pcVar1 + 0x10) != pTVar5) break;\nLAB_002d3a40:\n              if (iVar3 != 0) goto LAB_002d3a94;\n              pcVar1[0xc] = '\0';\n              pcVar1[0xd] = '\0';\n              pcVar1[0xe] = '\0';\n              pcVar1[0xf] = '\0';\n              pcVar1[0x10] = '\0';\n              pcVar1[0x11] = '\0';\n              pcVar1[0x12] = '\0';\n              pcVar1[0x13] = '\0';\n            }\n          }\nLAB_002d3a5c:\n          uVar6 = 0x5a;\n          goto LAB_002d3a60;\n        }\n        piVar8 = piVar8 + 1;\n        if (piVar8 == piVar7 + iVar3 + 1) {\n          return apTStack_48[0];\n        }\n      }\n      if (iVar4 != *(int *)(pcVar1 + 8)) {\n        uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                          (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0x84,\n                           *(int *)(puVar9 + 0x1ee098) + 0x3a5c);\n        return uVar6;\n      }\n      pcVar1[8] = '\0';\n      pcVar1[9] = '\0';\n      pcVar1[10] = '\0';\n      pcVar1[0xb] = '\0';\n      do {\n        pTVar5 = *(Task **)(pcVar1 + 0xc);\n        if (pTVar5 == (Task *)0x0) break;\n        iVar3 = *(int *)(pTVar5 + 4);\n        if (pTVar5 == *(Task **)(pcVar1 + 0x10)) {\n          if (iVar3 != 0) goto LAB_002d3a94;\n          pcVar1[0xc] = '\0';\n          pcVar1[0xd] = '\0';\n          pcVar1[0xe] = '\0';\n          pcVar1[0xf] = '\0';\n          pcVar1[0x10] = '\0';\n          pcVar1[0x11] = '\0';\n          pcVar1[0x12] = '\0';\n          pcVar1[0x13] = '\0';\n        }\n        else {\n          *(int *)(pcVar1 + 0xc) = iVar3;\n          if (iVar3 == 0) goto LAB_002d3a5c;\n          *(undefined4 *)(pTVar5 + 4) = 0;\n        }\n        *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n        iVar3 = return_or_queue(this_00,pTVar5,false,apTStack_48);\n      } while (iVar3 == 0);\nLAB_002d398c:\n      iVar3 = *piVar7;\n      piVar8 = piVar8 + 1;\n    } while (piVar8 != piVar7 + iVar3 + 1);\n  }\n  return apTStack_48[0];\nLAB_002d3a94:\n  uVar6 = 0x53;\nLAB_002d3a60:\n  uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                    (*(int *)(puVar9 + 0x1ee098) + 0x39bc,uVar6,*(int *)(puVar9 + 0x1ee098) + 0x3aa0\n                    );\n  return uVar6;\n}" type_identifier (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Workqueue::" identifier : : identifier : :) (function_declarator "return_or_queue(Workqueue *this,Task *param_1,bool param_2,Task **param_3)" identifier (parameter_list "(Workqueue *this,Task *param_1,bool param_2,Task **param_3)" ( (parameter_declaration "Workqueue *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Task *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "bool param_2" primitive_type identifier) , (parameter_declaration "Task **param_3" type_identifier (pointer_declarator "**param_3" * (pointer_declarator "*param_3" * identifier))) ))) (compound_statement "{\n  char *pcVar1;\n  int iVar2;\n  int iVar3;\n  Workqueue *this_00;\n  int iVar4;\n  Task *pTVar5;\n  undefined4 uVar6;\n  undefined3 in_register_00000018;\n  int *piVar7;\n  int *piVar8;\n  undefined *puVar9;\n  Task *apTStack_48 [2];\n  Workqueue *pWStack_40;\n  \n  if (*(code **)(*(int *)param_1 + 8) == (code *)PTR_is_runnable_004c4b34) {\n    pcVar1 = *(char **)(param_1 + 0x28);\n    if (*pcVar1 != '\0') {\n      if (*(int *)(pcVar1 + 4) < 1) goto LAB_002d3724;\nLAB_002d36ac:\n      if (*(int *)(param_1 + 4) == 0) {\n        if (*(int *)(pcVar1 + 0xc) == 0) {\n          *(Task **)(pcVar1 + 0xc) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\nLAB_002d36dc:\n          *(int *)(this + 0x18) = *(int *)(this + 0x18) + 1;\n          return 0;\n        }\n        if (*(int *)(*(int *)(pcVar1 + 0x10) + 4) == 0) {\n          *(Task **)(*(int *)(pcVar1 + 0x10) + 4) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\n          goto LAB_002d36dc;\n        }\n        goto LAB_002d386c;\n      }\n      goto LAB_002d3834;\n    }\n  }\n  else {\n    pcVar1 = (char *)(**(code **)(*(int *)param_1 + 8))(param_1);\n    if (pcVar1 != (char *)0x0) goto LAB_002d36ac;\nLAB_002d3724:\n    if (*param_3 == (Task *)0x0) {\n      if (((CONCAT31(in_register_00000018,param_2) == 0) || (param_1[0x20] != (Task)0x0)) ||\n         ((*(int *)(this + 4) == 0 && (*(int *)(this + 0xc) == 0)))) {\n        *param_3 = param_1;\n        return 1;\n      }\n      iVar3 = *(int *)(param_1 + 4);\n    }\n    else {\n      iVar3 = *(int *)(param_1 + 4);\n      if (param_1[0x20] != (Task)0x0) {\n        if (iVar3 == 0) {\n          if (*(int *)(this + 4) == 0) {\n            *(Task **)(this + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          if (*(int *)(*(int *)(this + 8) + 4) == 0) {\n            *(Task **)(*(int *)(this + 8) + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }\n        goto LAB_002d3834;\n      }\n    }\n    if (iVar3 == 0) {\n      if (*(int *)(this + 0xc) == 0) {\n        *(Task **)(this + 0xc) = param_1;\n        *(Task **)(this + 0x10) = param_1;\nLAB_002d3768:\n        (**(code **)(**(int **)(this + 0x20) + 0xc))(*(int **)(this + 0x20));\n        return 0;\n      }\n      if (*(int *)(*(int *)(this + 0x10) + 4) == 0) {\n        *(Task **)(*(int *)(this + 0x10) + 4) = param_1;\n        *(Task **)(this + 0x10) = param_1;\n        goto LAB_002d3768;\n      }\n      goto LAB_002d386c;\n    }\nLAB_002d3834:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x39bc,0x29,\n               PTR_s_in_a_linker_script_004c191c + 0x3aac);\n  }\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x7f8,0xab,\n             PTR_s_in_a_linker_script_004c191c + 0x3ad4);\nLAB_002d386c:\n  iVar4 = 0x5a;\n  piVar7 = (int *)(PTR_s_in_a_linker_script_004c191c + 0x3ab8);\n  this_00 = (Workqueue *)(PTR_s__s_004c1a50 + 0x970);\n  puVar9 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)();\n  iVar3 = *piVar7;\n  piVar8 = piVar7 + 1;\n  apTStack_48[0] = (Task *)0x0;\n  if (piVar8 == piVar7 + iVar3 + 1) {\n    apTStack_48[0] = (Task *)0x0;\n  }\n  else {\n    pWStack_40 = this;\n    do {\n      while (pcVar1 = (char *)*piVar8, *pcVar1 != '\0') {\n        iVar2 = *(int *)(pcVar1 + 4) + -1;\n        if (*(int *)(pcVar1 + 4) < 1) {\n          uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                            (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0xa1,\n                             *(int *)(puVar9 + 0x1ee098) + 0x3a6c);\n          return uVar6;\n        }\n        pcVar1[8] = '\0';\n        pcVar1[9] = '\0';\n        pcVar1[10] = '\0';\n        pcVar1[0xb] = '\0';\n        *(int *)(pcVar1 + 4) = iVar2;\n        if ((iVar2 == 0) && (pTVar5 = *(Task **)(pcVar1 + 0xc), pTVar5 != (Task *)0x0)) {\n          iVar3 = *(int *)(pTVar5 + 4);\n          if (*(Task **)(pcVar1 + 0x10) == pTVar5) goto LAB_002d3a40;\n          while (*(int *)(pcVar1 + 0xc) = iVar3, iVar3 != 0) {\n            *(undefined4 *)(pTVar5 + 4) = 0;\n            while( true ) {\n              *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n              return_or_queue(this_00,pTVar5,true,apTStack_48);\n              pTVar5 = *(Task **)(pcVar1 + 0xc);\n              if (pTVar5 == (Task *)0x0) goto LAB_002d398c;\n              iVar3 = *(int *)(pTVar5 + 4);\n              if (*(Task **)(pcVar1 + 0x10) != pTVar5) break;\nLAB_002d3a40:\n              if (iVar3 != 0) goto LAB_002d3a94;\n              pcVar1[0xc] = '\0';\n              pcVar1[0xd] = '\0';\n              pcVar1[0xe] = '\0';\n              pcVar1[0xf] = '\0';\n              pcVar1[0x10] = '\0';\n              pcVar1[0x11] = '\0';\n              pcVar1[0x12] = '\0';\n              pcVar1[0x13] = '\0';\n            }\n          }\nLAB_002d3a5c:\n          uVar6 = 0x5a;\n          goto LAB_002d3a60;\n        }\n        piVar8 = piVar8 + 1;\n        if (piVar8 == piVar7 + iVar3 + 1) {\n          return apTStack_48[0];\n        }\n      }\n      if (iVar4 != *(int *)(pcVar1 + 8)) {\n        uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                          (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0x84,\n                           *(int *)(puVar9 + 0x1ee098) + 0x3a5c);\n        return uVar6;\n      }\n      pcVar1[8] = '\0';\n      pcVar1[9] = '\0';\n      pcVar1[10] = '\0';\n      pcVar1[0xb] = '\0';\n      do {\n        pTVar5 = *(Task **)(pcVar1 + 0xc);\n        if (pTVar5 == (Task *)0x0) break;\n        iVar3 = *(int *)(pTVar5 + 4);\n        if (pTVar5 == *(Task **)(pcVar1 + 0x10)) {\n          if (iVar3 != 0) goto LAB_002d3a94;\n          pcVar1[0xc] = '\0';\n          pcVar1[0xd] = '\0';\n          pcVar1[0xe] = '\0';\n          pcVar1[0xf] = '\0';\n          pcVar1[0x10] = '\0';\n          pcVar1[0x11] = '\0';\n          pcVar1[0x12] = '\0';\n          pcVar1[0x13] = '\0';\n        }\n        else {\n          *(int *)(pcVar1 + 0xc) = iVar3;\n          if (iVar3 == 0) goto LAB_002d3a5c;\n          *(undefined4 *)(pTVar5 + 4) = 0;\n        }\n        *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n        iVar3 = return_or_queue(this_00,pTVar5,false,apTStack_48);\n      } while (iVar3 == 0);\nLAB_002d398c:\n      iVar3 = *piVar7;\n      piVar8 = piVar8 + 1;\n    } while (piVar8 != piVar7 + iVar3 + 1);\n  }\n  return apTStack_48[0];\nLAB_002d3a94:\n  uVar6 = 0x53;\nLAB_002d3a60:\n  uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                    (*(int *)(puVar9 + 0x1ee098) + 0x39bc,uVar6,*(int *)(puVar9 + 0x1ee098) + 0x3aa0\n                    );\n  return uVar6;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "Workqueue *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "Task *pTVar5;" type_identifier (pointer_declarator "*pTVar5" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "undefined3 in_register_00000018;" type_identifier identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "undefined *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "Task *apTStack_48 [2];" type_identifier (pointer_declarator "*apTStack_48 [2]" * (array_declarator "apTStack_48 [2]" identifier [ number_literal ])) ;) (declaration "Workqueue *pWStack_40;" type_identifier (pointer_declarator "*pWStack_40" * identifier) ;) (if_statement "if (*(code **)(*(int *)param_1 + 8) == (code *)PTR_is_runnable_004c4b34) {\n    pcVar1 = *(char **)(param_1 + 0x28);\n    if (*pcVar1 != '\0') {\n      if (*(int *)(pcVar1 + 4) < 1) goto LAB_002d3724;\nLAB_002d36ac:\n      if (*(int *)(param_1 + 4) == 0) {\n        if (*(int *)(pcVar1 + 0xc) == 0) {\n          *(Task **)(pcVar1 + 0xc) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\nLAB_002d36dc:\n          *(int *)(this + 0x18) = *(int *)(this + 0x18) + 1;\n          return 0;\n        }\n        if (*(int *)(*(int *)(pcVar1 + 0x10) + 4) == 0) {\n          *(Task **)(*(int *)(pcVar1 + 0x10) + 4) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\n          goto LAB_002d36dc;\n        }\n        goto LAB_002d386c;\n      }\n      goto LAB_002d3834;\n    }\n  }\n  else {\n    pcVar1 = (char *)(**(code **)(*(int *)param_1 + 8))(param_1);\n    if (pcVar1 != (char *)0x0) goto LAB_002d36ac;\nLAB_002d3724:\n    if (*param_3 == (Task *)0x0) {\n      if (((CONCAT31(in_register_00000018,param_2) == 0) || (param_1[0x20] != (Task)0x0)) ||\n         ((*(int *)(this + 4) == 0 && (*(int *)(this + 0xc) == 0)))) {\n        *param_3 = param_1;\n        return 1;\n      }\n      iVar3 = *(int *)(param_1 + 4);\n    }\n    else {\n      iVar3 = *(int *)(param_1 + 4);\n      if (param_1[0x20] != (Task)0x0) {\n        if (iVar3 == 0) {\n          if (*(int *)(this + 4) == 0) {\n            *(Task **)(this + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          if (*(int *)(*(int *)(this + 8) + 4) == 0) {\n            *(Task **)(*(int *)(this + 8) + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }\n        goto LAB_002d3834;\n      }\n    }\n    if (iVar3 == 0) {\n      if (*(int *)(this + 0xc) == 0) {\n        *(Task **)(this + 0xc) = param_1;\n        *(Task **)(this + 0x10) = param_1;\nLAB_002d3768:\n        (**(code **)(**(int **)(this + 0x20) + 0xc))(*(int **)(this + 0x20));\n        return 0;\n      }\n      if (*(int *)(*(int *)(this + 0x10) + 4) == 0) {\n        *(Task **)(*(int *)(this + 0x10) + 4) = param_1;\n        *(Task **)(this + 0x10) = param_1;\n        goto LAB_002d3768;\n      }\n      goto LAB_002d386c;\n    }\nLAB_002d3834:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x39bc,0x29,\n               PTR_s_in_a_linker_script_004c191c + 0x3aac);\n  }" if (parenthesized_expression "(*(code **)(*(int *)param_1 + 8) == (code *)PTR_is_runnable_004c4b34)" ( (binary_expression "*(code **)(*(int *)param_1 + 8) == (code *)PTR_is_runnable_004c4b34" (pointer_expression "*(code **)(*(int *)param_1 + 8)" * (cast_expression "(code **)(*(int *)param_1 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)param_1 + 8)" ( (binary_expression "*(int *)param_1 + 8" (pointer_expression "*(int *)param_1" * (cast_expression "(int *)param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == (cast_expression "(code *)PTR_is_runnable_004c4b34" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n    pcVar1 = *(char **)(param_1 + 0x28);\n    if (*pcVar1 != '\0') {\n      if (*(int *)(pcVar1 + 4) < 1) goto LAB_002d3724;\nLAB_002d36ac:\n      if (*(int *)(param_1 + 4) == 0) {\n        if (*(int *)(pcVar1 + 0xc) == 0) {\n          *(Task **)(pcVar1 + 0xc) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\nLAB_002d36dc:\n          *(int *)(this + 0x18) = *(int *)(this + 0x18) + 1;\n          return 0;\n        }\n        if (*(int *)(*(int *)(pcVar1 + 0x10) + 4) == 0) {\n          *(Task **)(*(int *)(pcVar1 + 0x10) + 4) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\n          goto LAB_002d36dc;\n        }\n        goto LAB_002d386c;\n      }\n      goto LAB_002d3834;\n    }\n  }" { (expression_statement "pcVar1 = *(char **)(param_1 + 0x28);" (assignment_expression "pcVar1 = *(char **)(param_1 + 0x28)" identifier = (pointer_expression "*(char **)(param_1 + 0x28)" * (cast_expression "(char **)(param_1 + 0x28)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (*pcVar1 != '\0') {\n      if (*(int *)(pcVar1 + 4) < 1) goto LAB_002d3724;\nLAB_002d36ac:\n      if (*(int *)(param_1 + 4) == 0) {\n        if (*(int *)(pcVar1 + 0xc) == 0) {\n          *(Task **)(pcVar1 + 0xc) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\nLAB_002d36dc:\n          *(int *)(this + 0x18) = *(int *)(this + 0x18) + 1;\n          return 0;\n        }\n        if (*(int *)(*(int *)(pcVar1 + 0x10) + 4) == 0) {\n          *(Task **)(*(int *)(pcVar1 + 0x10) + 4) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\n          goto LAB_002d36dc;\n        }\n        goto LAB_002d386c;\n      }\n      goto LAB_002d3834;\n    }" if (parenthesized_expression "(*pcVar1 != '\0')" ( (binary_expression "*pcVar1 != '\0'" (pointer_expression "*pcVar1" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if (*(int *)(pcVar1 + 4) < 1) goto LAB_002d3724;\nLAB_002d36ac:\n      if (*(int *)(param_1 + 4) == 0) {\n        if (*(int *)(pcVar1 + 0xc) == 0) {\n          *(Task **)(pcVar1 + 0xc) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\nLAB_002d36dc:\n          *(int *)(this + 0x18) = *(int *)(this + 0x18) + 1;\n          return 0;\n        }\n        if (*(int *)(*(int *)(pcVar1 + 0x10) + 4) == 0) {\n          *(Task **)(*(int *)(pcVar1 + 0x10) + 4) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\n          goto LAB_002d36dc;\n        }\n        goto LAB_002d386c;\n      }\n      goto LAB_002d3834;\n    }" { (if_statement "if (*(int *)(pcVar1 + 4) < 1) goto LAB_002d3724;" if (parenthesized_expression "(*(int *)(pcVar1 + 4) < 1)" ( (binary_expression "*(int *)(pcVar1 + 4) < 1" (pointer_expression "*(int *)(pcVar1 + 4)" * (cast_expression "(int *)(pcVar1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar1 + 4)" ( (binary_expression "pcVar1 + 4" identifier + number_literal) )))) < number_literal) )) (goto_statement "goto LAB_002d3724;" goto statement_identifier ;)) (labeled_statement "LAB_002d36ac:\n      if (*(int *)(param_1 + 4) == 0) {\n        if (*(int *)(pcVar1 + 0xc) == 0) {\n          *(Task **)(pcVar1 + 0xc) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\nLAB_002d36dc:\n          *(int *)(this + 0x18) = *(int *)(this + 0x18) + 1;\n          return 0;\n        }\n        if (*(int *)(*(int *)(pcVar1 + 0x10) + 4) == 0) {\n          *(Task **)(*(int *)(pcVar1 + 0x10) + 4) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\n          goto LAB_002d36dc;\n        }\n        goto LAB_002d386c;\n      }" statement_identifier : (if_statement "if (*(int *)(param_1 + 4) == 0) {\n        if (*(int *)(pcVar1 + 0xc) == 0) {\n          *(Task **)(pcVar1 + 0xc) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\nLAB_002d36dc:\n          *(int *)(this + 0x18) = *(int *)(this + 0x18) + 1;\n          return 0;\n        }\n        if (*(int *)(*(int *)(pcVar1 + 0x10) + 4) == 0) {\n          *(Task **)(*(int *)(pcVar1 + 0x10) + 4) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\n          goto LAB_002d36dc;\n        }\n        goto LAB_002d386c;\n      }" if (parenthesized_expression "(*(int *)(param_1 + 4) == 0)" ( (binary_expression "*(int *)(param_1 + 4) == 0" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        if (*(int *)(pcVar1 + 0xc) == 0) {\n          *(Task **)(pcVar1 + 0xc) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\nLAB_002d36dc:\n          *(int *)(this + 0x18) = *(int *)(this + 0x18) + 1;\n          return 0;\n        }\n        if (*(int *)(*(int *)(pcVar1 + 0x10) + 4) == 0) {\n          *(Task **)(*(int *)(pcVar1 + 0x10) + 4) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\n          goto LAB_002d36dc;\n        }\n        goto LAB_002d386c;\n      }" { (if_statement "if (*(int *)(pcVar1 + 0xc) == 0) {\n          *(Task **)(pcVar1 + 0xc) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\nLAB_002d36dc:\n          *(int *)(this + 0x18) = *(int *)(this + 0x18) + 1;\n          return 0;\n        }" if (parenthesized_expression "(*(int *)(pcVar1 + 0xc) == 0)" ( (binary_expression "*(int *)(pcVar1 + 0xc) == 0" (pointer_expression "*(int *)(pcVar1 + 0xc)" * (cast_expression "(int *)(pcVar1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar1 + 0xc)" ( (binary_expression "pcVar1 + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          *(Task **)(pcVar1 + 0xc) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\nLAB_002d36dc:\n          *(int *)(this + 0x18) = *(int *)(this + 0x18) + 1;\n          return 0;\n        }" { (expression_statement "*(Task **)(pcVar1 + 0xc) = param_1;" (assignment_expression "*(Task **)(pcVar1 + 0xc) = param_1" (pointer_expression "*(Task **)(pcVar1 + 0xc)" * (cast_expression "(Task **)(pcVar1 + 0xc)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar1 + 0xc)" ( (binary_expression "pcVar1 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Task **)(pcVar1 + 0x10) = param_1;" (assignment_expression "*(Task **)(pcVar1 + 0x10) = param_1" (pointer_expression "*(Task **)(pcVar1 + 0x10)" * (cast_expression "(Task **)(pcVar1 + 0x10)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar1 + 0x10)" ( (binary_expression "pcVar1 + 0x10" identifier + number_literal) )))) = identifier) ;) (labeled_statement "LAB_002d36dc:\n          *(int *)(this + 0x18) = *(int *)(this + 0x18) + 1;" statement_identifier : (expression_statement "*(int *)(this + 0x18) = *(int *)(this + 0x18) + 1;" (assignment_expression "*(int *)(this + 0x18) = *(int *)(this + 0x18) + 1" (pointer_expression "*(int *)(this + 0x18)" * (cast_expression "(int *)(this + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x18)" ( (binary_expression "this + 0x18" identifier + number_literal) )))) = (binary_expression "*(int *)(this + 0x18) + 1" (pointer_expression "*(int *)(this + 0x18)" * (cast_expression "(int *)(this + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x18)" ( (binary_expression "this + 0x18" identifier + number_literal) )))) + number_literal)) ;)) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (*(int *)(*(int *)(pcVar1 + 0x10) + 4) == 0) {\n          *(Task **)(*(int *)(pcVar1 + 0x10) + 4) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\n          goto LAB_002d36dc;\n        }" if (parenthesized_expression "(*(int *)(*(int *)(pcVar1 + 0x10) + 4) == 0)" ( (binary_expression "*(int *)(*(int *)(pcVar1 + 0x10) + 4) == 0" (pointer_expression "*(int *)(*(int *)(pcVar1 + 0x10) + 4)" * (cast_expression "(int *)(*(int *)(pcVar1 + 0x10) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar1 + 0x10) + 4)" ( (binary_expression "*(int *)(pcVar1 + 0x10) + 4" (pointer_expression "*(int *)(pcVar1 + 0x10)" * (cast_expression "(int *)(pcVar1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar1 + 0x10)" ( (binary_expression "pcVar1 + 0x10" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n          *(Task **)(*(int *)(pcVar1 + 0x10) + 4) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\n          goto LAB_002d36dc;\n        }" { (expression_statement "*(Task **)(*(int *)(pcVar1 + 0x10) + 4) = param_1;" (assignment_expression "*(Task **)(*(int *)(pcVar1 + 0x10) + 4) = param_1" (pointer_expression "*(Task **)(*(int *)(pcVar1 + 0x10) + 4)" * (cast_expression "(Task **)(*(int *)(pcVar1 + 0x10) + 4)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcVar1 + 0x10) + 4)" ( (binary_expression "*(int *)(pcVar1 + 0x10) + 4" (pointer_expression "*(int *)(pcVar1 + 0x10)" * (cast_expression "(int *)(pcVar1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar1 + 0x10)" ( (binary_expression "pcVar1 + 0x10" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) (expression_statement "*(Task **)(pcVar1 + 0x10) = param_1;" (assignment_expression "*(Task **)(pcVar1 + 0x10) = param_1" (pointer_expression "*(Task **)(pcVar1 + 0x10)" * (cast_expression "(Task **)(pcVar1 + 0x10)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar1 + 0x10)" ( (binary_expression "pcVar1 + 0x10" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_002d36dc;" goto statement_identifier ;) })) (goto_statement "goto LAB_002d386c;" goto statement_identifier ;) }))) (goto_statement "goto LAB_002d3834;" goto statement_identifier ;) })) }) (else_clause "else {\n    pcVar1 = (char *)(**(code **)(*(int *)param_1 + 8))(param_1);\n    if (pcVar1 != (char *)0x0) goto LAB_002d36ac;\nLAB_002d3724:\n    if (*param_3 == (Task *)0x0) {\n      if (((CONCAT31(in_register_00000018,param_2) == 0) || (param_1[0x20] != (Task)0x0)) ||\n         ((*(int *)(this + 4) == 0 && (*(int *)(this + 0xc) == 0)))) {\n        *param_3 = param_1;\n        return 1;\n      }\n      iVar3 = *(int *)(param_1 + 4);\n    }\n    else {\n      iVar3 = *(int *)(param_1 + 4);\n      if (param_1[0x20] != (Task)0x0) {\n        if (iVar3 == 0) {\n          if (*(int *)(this + 4) == 0) {\n            *(Task **)(this + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          if (*(int *)(*(int *)(this + 8) + 4) == 0) {\n            *(Task **)(*(int *)(this + 8) + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }\n        goto LAB_002d3834;\n      }\n    }\n    if (iVar3 == 0) {\n      if (*(int *)(this + 0xc) == 0) {\n        *(Task **)(this + 0xc) = param_1;\n        *(Task **)(this + 0x10) = param_1;\nLAB_002d3768:\n        (**(code **)(**(int **)(this + 0x20) + 0xc))(*(int **)(this + 0x20));\n        return 0;\n      }\n      if (*(int *)(*(int *)(this + 0x10) + 4) == 0) {\n        *(Task **)(*(int *)(this + 0x10) + 4) = param_1;\n        *(Task **)(this + 0x10) = param_1;\n        goto LAB_002d3768;\n      }\n      goto LAB_002d386c;\n    }\nLAB_002d3834:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x39bc,0x29,\n               PTR_s_in_a_linker_script_004c191c + 0x3aac);\n  }" else (compound_statement "{\n    pcVar1 = (char *)(**(code **)(*(int *)param_1 + 8))(param_1);\n    if (pcVar1 != (char *)0x0) goto LAB_002d36ac;\nLAB_002d3724:\n    if (*param_3 == (Task *)0x0) {\n      if (((CONCAT31(in_register_00000018,param_2) == 0) || (param_1[0x20] != (Task)0x0)) ||\n         ((*(int *)(this + 4) == 0 && (*(int *)(this + 0xc) == 0)))) {\n        *param_3 = param_1;\n        return 1;\n      }\n      iVar3 = *(int *)(param_1 + 4);\n    }\n    else {\n      iVar3 = *(int *)(param_1 + 4);\n      if (param_1[0x20] != (Task)0x0) {\n        if (iVar3 == 0) {\n          if (*(int *)(this + 4) == 0) {\n            *(Task **)(this + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          if (*(int *)(*(int *)(this + 8) + 4) == 0) {\n            *(Task **)(*(int *)(this + 8) + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }\n        goto LAB_002d3834;\n      }\n    }\n    if (iVar3 == 0) {\n      if (*(int *)(this + 0xc) == 0) {\n        *(Task **)(this + 0xc) = param_1;\n        *(Task **)(this + 0x10) = param_1;\nLAB_002d3768:\n        (**(code **)(**(int **)(this + 0x20) + 0xc))(*(int **)(this + 0x20));\n        return 0;\n      }\n      if (*(int *)(*(int *)(this + 0x10) + 4) == 0) {\n        *(Task **)(*(int *)(this + 0x10) + 4) = param_1;\n        *(Task **)(this + 0x10) = param_1;\n        goto LAB_002d3768;\n      }\n      goto LAB_002d386c;\n    }\nLAB_002d3834:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x39bc,0x29,\n               PTR_s_in_a_linker_script_004c191c + 0x3aac);\n  }" { (expression_statement "pcVar1 = (char *)(**(code **)(*(int *)param_1 + 8))(param_1);" (assignment_expression "pcVar1 = (char *)(**(code **)(*(int *)param_1 + 8))(param_1)" identifier = (cast_expression "(char *)(**(code **)(*(int *)param_1 + 8))(param_1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*(int *)param_1 + 8))(param_1)" (parenthesized_expression "(**(code **)(*(int *)param_1 + 8))" ( (pointer_expression "**(code **)(*(int *)param_1 + 8)" * (pointer_expression "*(code **)(*(int *)param_1 + 8)" * (cast_expression "(code **)(*(int *)param_1 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)param_1 + 8)" ( (binary_expression "*(int *)param_1 + 8" (pointer_expression "*(int *)param_1" * (cast_expression "(int *)param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(param_1)" ( identifier ))))) ;) (if_statement "if (pcVar1 != (char *)0x0) goto LAB_002d36ac;" if (parenthesized_expression "(pcVar1 != (char *)0x0)" ( (binary_expression "pcVar1 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_002d36ac;" goto statement_identifier ;)) (labeled_statement "LAB_002d3724:\n    if (*param_3 == (Task *)0x0) {\n      if (((CONCAT31(in_register_00000018,param_2) == 0) || (param_1[0x20] != (Task)0x0)) ||\n         ((*(int *)(this + 4) == 0 && (*(int *)(this + 0xc) == 0)))) {\n        *param_3 = param_1;\n        return 1;\n      }\n      iVar3 = *(int *)(param_1 + 4);\n    }\n    else {\n      iVar3 = *(int *)(param_1 + 4);\n      if (param_1[0x20] != (Task)0x0) {\n        if (iVar3 == 0) {\n          if (*(int *)(this + 4) == 0) {\n            *(Task **)(this + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          if (*(int *)(*(int *)(this + 8) + 4) == 0) {\n            *(Task **)(*(int *)(this + 8) + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }\n        goto LAB_002d3834;\n      }\n    }" statement_identifier : (if_statement "if (*param_3 == (Task *)0x0) {\n      if (((CONCAT31(in_register_00000018,param_2) == 0) || (param_1[0x20] != (Task)0x0)) ||\n         ((*(int *)(this + 4) == 0 && (*(int *)(this + 0xc) == 0)))) {\n        *param_3 = param_1;\n        return 1;\n      }\n      iVar3 = *(int *)(param_1 + 4);\n    }\n    else {\n      iVar3 = *(int *)(param_1 + 4);\n      if (param_1[0x20] != (Task)0x0) {\n        if (iVar3 == 0) {\n          if (*(int *)(this + 4) == 0) {\n            *(Task **)(this + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          if (*(int *)(*(int *)(this + 8) + 4) == 0) {\n            *(Task **)(*(int *)(this + 8) + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }\n        goto LAB_002d3834;\n      }\n    }" if (parenthesized_expression "(*param_3 == (Task *)0x0)" ( (binary_expression "*param_3 == (Task *)0x0" (pointer_expression "*param_3" * identifier) == (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (((CONCAT31(in_register_00000018,param_2) == 0) || (param_1[0x20] != (Task)0x0)) ||\n         ((*(int *)(this + 4) == 0 && (*(int *)(this + 0xc) == 0)))) {\n        *param_3 = param_1;\n        return 1;\n      }\n      iVar3 = *(int *)(param_1 + 4);\n    }" { (if_statement "if (((CONCAT31(in_register_00000018,param_2) == 0) || (param_1[0x20] != (Task)0x0)) ||\n         ((*(int *)(this + 4) == 0 && (*(int *)(this + 0xc) == 0)))) {\n        *param_3 = param_1;\n        return 1;\n      }" if (parenthesized_expression "(((CONCAT31(in_register_00000018,param_2) == 0) || (param_1[0x20] != (Task)0x0)) ||\n         ((*(int *)(this + 4) == 0 && (*(int *)(this + 0xc) == 0))))" ( (binary_expression "((CONCAT31(in_register_00000018,param_2) == 0) || (param_1[0x20] != (Task)0x0)) ||\n         ((*(int *)(this + 4) == 0 && (*(int *)(this + 0xc) == 0)))" (parenthesized_expression "((CONCAT31(in_register_00000018,param_2) == 0) || (param_1[0x20] != (Task)0x0))" ( (binary_expression "(CONCAT31(in_register_00000018,param_2) == 0) || (param_1[0x20] != (Task)0x0)" (parenthesized_expression "(CONCAT31(in_register_00000018,param_2) == 0)" ( (binary_expression "CONCAT31(in_register_00000018,param_2) == 0" (call_expression "CONCAT31(in_register_00000018,param_2)" identifier (argument_list "(in_register_00000018,param_2)" ( identifier , identifier ))) == number_literal) )) || (parenthesized_expression "(param_1[0x20] != (Task)0x0)" ( (binary_expression "param_1[0x20] != (Task)0x0" (subscript_expression "param_1[0x20]" identifier [ number_literal ]) != (cast_expression "(Task)0x0" ( (type_descriptor "Task" type_identifier) ) number_literal)) ))) )) || (parenthesized_expression "((*(int *)(this + 4) == 0 && (*(int *)(this + 0xc) == 0)))" ( (parenthesized_expression "(*(int *)(this + 4) == 0 && (*(int *)(this + 0xc) == 0))" ( (binary_expression "*(int *)(this + 4) == 0 && (*(int *)(this + 0xc) == 0)" (binary_expression "*(int *)(this + 4) == 0" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) == number_literal) && (parenthesized_expression "(*(int *)(this + 0xc) == 0)" ( (binary_expression "*(int *)(this + 0xc) == 0" (pointer_expression "*(int *)(this + 0xc)" * (cast_expression "(int *)(this + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0xc)" ( (binary_expression "this + 0xc" identifier + number_literal) )))) == number_literal) ))) )) ))) )) (compound_statement "{\n        *param_3 = param_1;\n        return 1;\n      }" { (expression_statement "*param_3 = param_1;" (assignment_expression "*param_3 = param_1" (pointer_expression "*param_3" * identifier) = identifier) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "iVar3 = *(int *)(param_1 + 4);" (assignment_expression "iVar3 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      iVar3 = *(int *)(param_1 + 4);\n      if (param_1[0x20] != (Task)0x0) {\n        if (iVar3 == 0) {\n          if (*(int *)(this + 4) == 0) {\n            *(Task **)(this + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          if (*(int *)(*(int *)(this + 8) + 4) == 0) {\n            *(Task **)(*(int *)(this + 8) + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }\n        goto LAB_002d3834;\n      }\n    }" else (compound_statement "{\n      iVar3 = *(int *)(param_1 + 4);\n      if (param_1[0x20] != (Task)0x0) {\n        if (iVar3 == 0) {\n          if (*(int *)(this + 4) == 0) {\n            *(Task **)(this + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          if (*(int *)(*(int *)(this + 8) + 4) == 0) {\n            *(Task **)(*(int *)(this + 8) + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }\n        goto LAB_002d3834;\n      }\n    }" { (expression_statement "iVar3 = *(int *)(param_1 + 4);" (assignment_expression "iVar3 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (if_statement "if (param_1[0x20] != (Task)0x0) {\n        if (iVar3 == 0) {\n          if (*(int *)(this + 4) == 0) {\n            *(Task **)(this + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          if (*(int *)(*(int *)(this + 8) + 4) == 0) {\n            *(Task **)(*(int *)(this + 8) + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }\n        goto LAB_002d3834;\n      }" if (parenthesized_expression "(param_1[0x20] != (Task)0x0)" ( (binary_expression "param_1[0x20] != (Task)0x0" (subscript_expression "param_1[0x20]" identifier [ number_literal ]) != (cast_expression "(Task)0x0" ( (type_descriptor "Task" type_identifier) ) number_literal)) )) (compound_statement "{\n        if (iVar3 == 0) {\n          if (*(int *)(this + 4) == 0) {\n            *(Task **)(this + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          if (*(int *)(*(int *)(this + 8) + 4) == 0) {\n            *(Task **)(*(int *)(this + 8) + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }\n        goto LAB_002d3834;\n      }" { (if_statement "if (iVar3 == 0) {\n          if (*(int *)(this + 4) == 0) {\n            *(Task **)(this + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          if (*(int *)(*(int *)(this + 8) + 4) == 0) {\n            *(Task **)(*(int *)(this + 8) + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          if (*(int *)(this + 4) == 0) {\n            *(Task **)(this + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          if (*(int *)(*(int *)(this + 8) + 4) == 0) {\n            *(Task **)(*(int *)(this + 8) + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }" { (if_statement "if (*(int *)(this + 4) == 0) {\n            *(Task **)(this + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }" if (parenthesized_expression "(*(int *)(this + 4) == 0)" ( (binary_expression "*(int *)(this + 4) == 0" (pointer_expression "*(int *)(this + 4)" * (cast_expression "(int *)(this + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n            *(Task **)(this + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }" { (expression_statement "*(Task **)(this + 4) = param_1;" (assignment_expression "*(Task **)(this + 4) = param_1" (pointer_expression "*(Task **)(this + 4)" * (cast_expression "(Task **)(this + 4)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 4)" ( (binary_expression "this + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Task **)(this + 8) = param_1;" (assignment_expression "*(Task **)(this + 8) = param_1" (pointer_expression "*(Task **)(this + 8)" * (cast_expression "(Task **)(this + 8)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_002d3768;" goto statement_identifier ;) })) (if_statement "if (*(int *)(*(int *)(this + 8) + 4) == 0) {\n            *(Task **)(*(int *)(this + 8) + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }" if (parenthesized_expression "(*(int *)(*(int *)(this + 8) + 4) == 0)" ( (binary_expression "*(int *)(*(int *)(this + 8) + 4) == 0" (pointer_expression "*(int *)(*(int *)(this + 8) + 4)" * (cast_expression "(int *)(*(int *)(this + 8) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(this + 8) + 4)" ( (binary_expression "*(int *)(this + 8) + 4" (pointer_expression "*(int *)(this + 8)" * (cast_expression "(int *)(this + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n            *(Task **)(*(int *)(this + 8) + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }" { (expression_statement "*(Task **)(*(int *)(this + 8) + 4) = param_1;" (assignment_expression "*(Task **)(*(int *)(this + 8) + 4) = param_1" (pointer_expression "*(Task **)(*(int *)(this + 8) + 4)" * (cast_expression "(Task **)(*(int *)(this + 8) + 4)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(this + 8) + 4)" ( (binary_expression "*(int *)(this + 8) + 4" (pointer_expression "*(int *)(this + 8)" * (cast_expression "(int *)(this + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) (expression_statement "*(Task **)(this + 8) = param_1;" (assignment_expression "*(Task **)(this + 8) = param_1" (pointer_expression "*(Task **)(this + 8)" * (cast_expression "(Task **)(this + 8)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 8)" ( (binary_expression "this + 8" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_002d3768;" goto statement_identifier ;) })) (goto_statement "goto LAB_002d386c;" goto statement_identifier ;) })) (goto_statement "goto LAB_002d3834;" goto statement_identifier ;) })) })))) (if_statement "if (iVar3 == 0) {\n      if (*(int *)(this + 0xc) == 0) {\n        *(Task **)(this + 0xc) = param_1;\n        *(Task **)(this + 0x10) = param_1;\nLAB_002d3768:\n        (**(code **)(**(int **)(this + 0x20) + 0xc))(*(int **)(this + 0x20));\n        return 0;\n      }\n      if (*(int *)(*(int *)(this + 0x10) + 4) == 0) {\n        *(Task **)(*(int *)(this + 0x10) + 4) = param_1;\n        *(Task **)(this + 0x10) = param_1;\n        goto LAB_002d3768;\n      }\n      goto LAB_002d386c;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      if (*(int *)(this + 0xc) == 0) {\n        *(Task **)(this + 0xc) = param_1;\n        *(Task **)(this + 0x10) = param_1;\nLAB_002d3768:\n        (**(code **)(**(int **)(this + 0x20) + 0xc))(*(int **)(this + 0x20));\n        return 0;\n      }\n      if (*(int *)(*(int *)(this + 0x10) + 4) == 0) {\n        *(Task **)(*(int *)(this + 0x10) + 4) = param_1;\n        *(Task **)(this + 0x10) = param_1;\n        goto LAB_002d3768;\n      }\n      goto LAB_002d386c;\n    }" { (if_statement "if (*(int *)(this + 0xc) == 0) {\n        *(Task **)(this + 0xc) = param_1;\n        *(Task **)(this + 0x10) = param_1;\nLAB_002d3768:\n        (**(code **)(**(int **)(this + 0x20) + 0xc))(*(int **)(this + 0x20));\n        return 0;\n      }" if (parenthesized_expression "(*(int *)(this + 0xc) == 0)" ( (binary_expression "*(int *)(this + 0xc) == 0" (pointer_expression "*(int *)(this + 0xc)" * (cast_expression "(int *)(this + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0xc)" ( (binary_expression "this + 0xc" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        *(Task **)(this + 0xc) = param_1;\n        *(Task **)(this + 0x10) = param_1;\nLAB_002d3768:\n        (**(code **)(**(int **)(this + 0x20) + 0xc))(*(int **)(this + 0x20));\n        return 0;\n      }" { (expression_statement "*(Task **)(this + 0xc) = param_1;" (assignment_expression "*(Task **)(this + 0xc) = param_1" (pointer_expression "*(Task **)(this + 0xc)" * (cast_expression "(Task **)(this + 0xc)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0xc)" ( (binary_expression "this + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(Task **)(this + 0x10) = param_1;" (assignment_expression "*(Task **)(this + 0x10) = param_1" (pointer_expression "*(Task **)(this + 0x10)" * (cast_expression "(Task **)(this + 0x10)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x10)" ( (binary_expression "this + 0x10" identifier + number_literal) )))) = identifier) ;) (labeled_statement "LAB_002d3768:\n        (**(code **)(**(int **)(this + 0x20) + 0xc))(*(int **)(this + 0x20));" statement_identifier : (expression_statement "(**(code **)(**(int **)(this + 0x20) + 0xc))(*(int **)(this + 0x20));" (call_expression "(**(code **)(**(int **)(this + 0x20) + 0xc))(*(int **)(this + 0x20))" (parenthesized_expression "(**(code **)(**(int **)(this + 0x20) + 0xc))" ( (pointer_expression "**(code **)(**(int **)(this + 0x20) + 0xc)" * (pointer_expression "*(code **)(**(int **)(this + 0x20) + 0xc)" * (cast_expression "(code **)(**(int **)(this + 0x20) + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(this + 0x20) + 0xc)" ( (binary_expression "**(int **)(this + 0x20) + 0xc" (pointer_expression "**(int **)(this + 0x20)" * (pointer_expression "*(int **)(this + 0x20)" * (cast_expression "(int **)(this + 0x20)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x20)" ( (binary_expression "this + 0x20" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(this + 0x20))" ( (pointer_expression "*(int **)(this + 0x20)" * (cast_expression "(int **)(this + 0x20)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x20)" ( (binary_expression "this + 0x20" identifier + number_literal) )))) ))) ;)) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (*(int *)(*(int *)(this + 0x10) + 4) == 0) {\n        *(Task **)(*(int *)(this + 0x10) + 4) = param_1;\n        *(Task **)(this + 0x10) = param_1;\n        goto LAB_002d3768;\n      }" if (parenthesized_expression "(*(int *)(*(int *)(this + 0x10) + 4) == 0)" ( (binary_expression "*(int *)(*(int *)(this + 0x10) + 4) == 0" (pointer_expression "*(int *)(*(int *)(this + 0x10) + 4)" * (cast_expression "(int *)(*(int *)(this + 0x10) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(this + 0x10) + 4)" ( (binary_expression "*(int *)(this + 0x10) + 4" (pointer_expression "*(int *)(this + 0x10)" * (cast_expression "(int *)(this + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x10)" ( (binary_expression "this + 0x10" identifier + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n        *(Task **)(*(int *)(this + 0x10) + 4) = param_1;\n        *(Task **)(this + 0x10) = param_1;\n        goto LAB_002d3768;\n      }" { (expression_statement "*(Task **)(*(int *)(this + 0x10) + 4) = param_1;" (assignment_expression "*(Task **)(*(int *)(this + 0x10) + 4) = param_1" (pointer_expression "*(Task **)(*(int *)(this + 0x10) + 4)" * (cast_expression "(Task **)(*(int *)(this + 0x10) + 4)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(this + 0x10) + 4)" ( (binary_expression "*(int *)(this + 0x10) + 4" (pointer_expression "*(int *)(this + 0x10)" * (cast_expression "(int *)(this + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this + 0x10)" ( (binary_expression "this + 0x10" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) (expression_statement "*(Task **)(this + 0x10) = param_1;" (assignment_expression "*(Task **)(this + 0x10) = param_1" (pointer_expression "*(Task **)(this + 0x10)" * (cast_expression "(Task **)(this + 0x10)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(this + 0x10)" ( (binary_expression "this + 0x10" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_002d3768;" goto statement_identifier ;) })) (goto_statement "goto LAB_002d386c;" goto statement_identifier ;) })) (labeled_statement "LAB_002d3834:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x39bc,0x29,\n               PTR_s_in_a_linker_script_004c191c + 0x3aac);" statement_identifier : (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x39bc,0x29,\n               PTR_s_in_a_linker_script_004c191c + 0x3aac);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x39bc,0x29,\n               PTR_s_in_a_linker_script_004c191c + 0x3aac)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_in_a_linker_script_004c191c + 0x39bc,0x29,\n               PTR_s_in_a_linker_script_004c191c + 0x3aac)" ( (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x39bc" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x3aac" identifier + number_literal) ))) ;)) }))) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x7f8,0xab,\n             PTR_s_in_a_linker_script_004c191c + 0x3ad4);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x7f8,0xab,\n             PTR_s_in_a_linker_script_004c191c + 0x3ad4)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x7f8,0xab,\n             PTR_s_in_a_linker_script_004c191c + 0x3ad4)" ( (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + -0x7f8" identifier + number_literal) , number_literal , (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x3ad4" identifier + number_literal) ))) ;) (labeled_statement "LAB_002d386c:\n  iVar4 = 0x5a;" statement_identifier : (expression_statement "iVar4 = 0x5a;" (assignment_expression "iVar4 = 0x5a" identifier = number_literal) ;)) (expression_statement "piVar7 = (int *)(PTR_s_in_a_linker_script_004c191c + 0x3ab8);" (assignment_expression "piVar7 = (int *)(PTR_s_in_a_linker_script_004c191c + 0x3ab8)" identifier = (cast_expression "(int *)(PTR_s_in_a_linker_script_004c191c + 0x3ab8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_in_a_linker_script_004c191c + 0x3ab8)" ( (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x3ab8" identifier + number_literal) )))) ;) (expression_statement "this_00 = (Workqueue *)(PTR_s__s_004c1a50 + 0x970);" (assignment_expression "this_00 = (Workqueue *)(PTR_s__s_004c1a50 + 0x970)" identifier = (cast_expression "(Workqueue *)(PTR_s__s_004c1a50 + 0x970)" ( (type_descriptor "Workqueue *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s__s_004c1a50 + 0x970)" ( (binary_expression "PTR_s__s_004c1a50 + 0x970" identifier + number_literal) )))) ;) (expression_statement "puVar9 = PTR_do_gold_unreachable_004c1a30;" (assignment_expression "puVar9 = PTR_do_gold_unreachable_004c1a30" identifier = identifier) ;) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)();" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)()" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" ( (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" * (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar3 = *piVar7;" (assignment_expression "iVar3 = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;) (expression_statement "piVar8 = piVar7 + 1;" (assignment_expression "piVar8 = piVar7 + 1" identifier = (binary_expression "piVar7 + 1" identifier + number_literal)) ;) (expression_statement "apTStack_48[0] = (Task *)0x0;" (assignment_expression "apTStack_48[0] = (Task *)0x0" (subscript_expression "apTStack_48[0]" identifier [ number_literal ]) = (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (piVar8 == piVar7 + iVar3 + 1) {\n    apTStack_48[0] = (Task *)0x0;\n  }\n  else {\n    pWStack_40 = this;\n    do {\n      while (pcVar1 = (char *)*piVar8, *pcVar1 != '\0') {\n        iVar2 = *(int *)(pcVar1 + 4) + -1;\n        if (*(int *)(pcVar1 + 4) < 1) {\n          uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                            (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0xa1,\n                             *(int *)(puVar9 + 0x1ee098) + 0x3a6c);\n          return uVar6;\n        }\n        pcVar1[8] = '\0';\n        pcVar1[9] = '\0';\n        pcVar1[10] = '\0';\n        pcVar1[0xb] = '\0';\n        *(int *)(pcVar1 + 4) = iVar2;\n        if ((iVar2 == 0) && (pTVar5 = *(Task **)(pcVar1 + 0xc), pTVar5 != (Task *)0x0)) {\n          iVar3 = *(int *)(pTVar5 + 4);\n          if (*(Task **)(pcVar1 + 0x10) == pTVar5) goto LAB_002d3a40;\n          while (*(int *)(pcVar1 + 0xc) = iVar3, iVar3 != 0) {\n            *(undefined4 *)(pTVar5 + 4) = 0;\n            while( true ) {\n              *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n              return_or_queue(this_00,pTVar5,true,apTStack_48);\n              pTVar5 = *(Task **)(pcVar1 + 0xc);\n              if (pTVar5 == (Task *)0x0) goto LAB_002d398c;\n              iVar3 = *(int *)(pTVar5 + 4);\n              if (*(Task **)(pcVar1 + 0x10) != pTVar5) break;\nLAB_002d3a40:\n              if (iVar3 != 0) goto LAB_002d3a94;\n              pcVar1[0xc] = '\0';\n              pcVar1[0xd] = '\0';\n              pcVar1[0xe] = '\0';\n              pcVar1[0xf] = '\0';\n              pcVar1[0x10] = '\0';\n              pcVar1[0x11] = '\0';\n              pcVar1[0x12] = '\0';\n              pcVar1[0x13] = '\0';\n            }\n          }\nLAB_002d3a5c:\n          uVar6 = 0x5a;\n          goto LAB_002d3a60;\n        }\n        piVar8 = piVar8 + 1;\n        if (piVar8 == piVar7 + iVar3 + 1) {\n          return apTStack_48[0];\n        }\n      }\n      if (iVar4 != *(int *)(pcVar1 + 8)) {\n        uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                          (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0x84,\n                           *(int *)(puVar9 + 0x1ee098) + 0x3a5c);\n        return uVar6;\n      }\n      pcVar1[8] = '\0';\n      pcVar1[9] = '\0';\n      pcVar1[10] = '\0';\n      pcVar1[0xb] = '\0';\n      do {\n        pTVar5 = *(Task **)(pcVar1 + 0xc);\n        if (pTVar5 == (Task *)0x0) break;\n        iVar3 = *(int *)(pTVar5 + 4);\n        if (pTVar5 == *(Task **)(pcVar1 + 0x10)) {\n          if (iVar3 != 0) goto LAB_002d3a94;\n          pcVar1[0xc] = '\0';\n          pcVar1[0xd] = '\0';\n          pcVar1[0xe] = '\0';\n          pcVar1[0xf] = '\0';\n          pcVar1[0x10] = '\0';\n          pcVar1[0x11] = '\0';\n          pcVar1[0x12] = '\0';\n          pcVar1[0x13] = '\0';\n        }\n        else {\n          *(int *)(pcVar1 + 0xc) = iVar3;\n          if (iVar3 == 0) goto LAB_002d3a5c;\n          *(undefined4 *)(pTVar5 + 4) = 0;\n        }\n        *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n        iVar3 = return_or_queue(this_00,pTVar5,false,apTStack_48);\n      } while (iVar3 == 0);\nLAB_002d398c:\n      iVar3 = *piVar7;\n      piVar8 = piVar8 + 1;\n    } while (piVar8 != piVar7 + iVar3 + 1);\n  }" if (parenthesized_expression "(piVar8 == piVar7 + iVar3 + 1)" ( (binary_expression "piVar8 == piVar7 + iVar3 + 1" identifier == (binary_expression "piVar7 + iVar3 + 1" (binary_expression "piVar7 + iVar3" identifier + identifier) + number_literal)) )) (compound_statement "{\n    apTStack_48[0] = (Task *)0x0;\n  }" { (expression_statement "apTStack_48[0] = (Task *)0x0;" (assignment_expression "apTStack_48[0] = (Task *)0x0" (subscript_expression "apTStack_48[0]" identifier [ number_literal ]) = (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    pWStack_40 = this;\n    do {\n      while (pcVar1 = (char *)*piVar8, *pcVar1 != '\0') {\n        iVar2 = *(int *)(pcVar1 + 4) + -1;\n        if (*(int *)(pcVar1 + 4) < 1) {\n          uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                            (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0xa1,\n                             *(int *)(puVar9 + 0x1ee098) + 0x3a6c);\n          return uVar6;\n        }\n        pcVar1[8] = '\0';\n        pcVar1[9] = '\0';\n        pcVar1[10] = '\0';\n        pcVar1[0xb] = '\0';\n        *(int *)(pcVar1 + 4) = iVar2;\n        if ((iVar2 == 0) && (pTVar5 = *(Task **)(pcVar1 + 0xc), pTVar5 != (Task *)0x0)) {\n          iVar3 = *(int *)(pTVar5 + 4);\n          if (*(Task **)(pcVar1 + 0x10) == pTVar5) goto LAB_002d3a40;\n          while (*(int *)(pcVar1 + 0xc) = iVar3, iVar3 != 0) {\n            *(undefined4 *)(pTVar5 + 4) = 0;\n            while( true ) {\n              *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n              return_or_queue(this_00,pTVar5,true,apTStack_48);\n              pTVar5 = *(Task **)(pcVar1 + 0xc);\n              if (pTVar5 == (Task *)0x0) goto LAB_002d398c;\n              iVar3 = *(int *)(pTVar5 + 4);\n              if (*(Task **)(pcVar1 + 0x10) != pTVar5) break;\nLAB_002d3a40:\n              if (iVar3 != 0) goto LAB_002d3a94;\n              pcVar1[0xc] = '\0';\n              pcVar1[0xd] = '\0';\n              pcVar1[0xe] = '\0';\n              pcVar1[0xf] = '\0';\n              pcVar1[0x10] = '\0';\n              pcVar1[0x11] = '\0';\n              pcVar1[0x12] = '\0';\n              pcVar1[0x13] = '\0';\n            }\n          }\nLAB_002d3a5c:\n          uVar6 = 0x5a;\n          goto LAB_002d3a60;\n        }\n        piVar8 = piVar8 + 1;\n        if (piVar8 == piVar7 + iVar3 + 1) {\n          return apTStack_48[0];\n        }\n      }\n      if (iVar4 != *(int *)(pcVar1 + 8)) {\n        uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                          (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0x84,\n                           *(int *)(puVar9 + 0x1ee098) + 0x3a5c);\n        return uVar6;\n      }\n      pcVar1[8] = '\0';\n      pcVar1[9] = '\0';\n      pcVar1[10] = '\0';\n      pcVar1[0xb] = '\0';\n      do {\n        pTVar5 = *(Task **)(pcVar1 + 0xc);\n        if (pTVar5 == (Task *)0x0) break;\n        iVar3 = *(int *)(pTVar5 + 4);\n        if (pTVar5 == *(Task **)(pcVar1 + 0x10)) {\n          if (iVar3 != 0) goto LAB_002d3a94;\n          pcVar1[0xc] = '\0';\n          pcVar1[0xd] = '\0';\n          pcVar1[0xe] = '\0';\n          pcVar1[0xf] = '\0';\n          pcVar1[0x10] = '\0';\n          pcVar1[0x11] = '\0';\n          pcVar1[0x12] = '\0';\n          pcVar1[0x13] = '\0';\n        }\n        else {\n          *(int *)(pcVar1 + 0xc) = iVar3;\n          if (iVar3 == 0) goto LAB_002d3a5c;\n          *(undefined4 *)(pTVar5 + 4) = 0;\n        }\n        *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n        iVar3 = return_or_queue(this_00,pTVar5,false,apTStack_48);\n      } while (iVar3 == 0);\nLAB_002d398c:\n      iVar3 = *piVar7;\n      piVar8 = piVar8 + 1;\n    } while (piVar8 != piVar7 + iVar3 + 1);\n  }" else (compound_statement "{\n    pWStack_40 = this;\n    do {\n      while (pcVar1 = (char *)*piVar8, *pcVar1 != '\0') {\n        iVar2 = *(int *)(pcVar1 + 4) + -1;\n        if (*(int *)(pcVar1 + 4) < 1) {\n          uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                            (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0xa1,\n                             *(int *)(puVar9 + 0x1ee098) + 0x3a6c);\n          return uVar6;\n        }\n        pcVar1[8] = '\0';\n        pcVar1[9] = '\0';\n        pcVar1[10] = '\0';\n        pcVar1[0xb] = '\0';\n        *(int *)(pcVar1 + 4) = iVar2;\n        if ((iVar2 == 0) && (pTVar5 = *(Task **)(pcVar1 + 0xc), pTVar5 != (Task *)0x0)) {\n          iVar3 = *(int *)(pTVar5 + 4);\n          if (*(Task **)(pcVar1 + 0x10) == pTVar5) goto LAB_002d3a40;\n          while (*(int *)(pcVar1 + 0xc) = iVar3, iVar3 != 0) {\n            *(undefined4 *)(pTVar5 + 4) = 0;\n            while( true ) {\n              *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n              return_or_queue(this_00,pTVar5,true,apTStack_48);\n              pTVar5 = *(Task **)(pcVar1 + 0xc);\n              if (pTVar5 == (Task *)0x0) goto LAB_002d398c;\n              iVar3 = *(int *)(pTVar5 + 4);\n              if (*(Task **)(pcVar1 + 0x10) != pTVar5) break;\nLAB_002d3a40:\n              if (iVar3 != 0) goto LAB_002d3a94;\n              pcVar1[0xc] = '\0';\n              pcVar1[0xd] = '\0';\n              pcVar1[0xe] = '\0';\n              pcVar1[0xf] = '\0';\n              pcVar1[0x10] = '\0';\n              pcVar1[0x11] = '\0';\n              pcVar1[0x12] = '\0';\n              pcVar1[0x13] = '\0';\n            }\n          }\nLAB_002d3a5c:\n          uVar6 = 0x5a;\n          goto LAB_002d3a60;\n        }\n        piVar8 = piVar8 + 1;\n        if (piVar8 == piVar7 + iVar3 + 1) {\n          return apTStack_48[0];\n        }\n      }\n      if (iVar4 != *(int *)(pcVar1 + 8)) {\n        uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                          (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0x84,\n                           *(int *)(puVar9 + 0x1ee098) + 0x3a5c);\n        return uVar6;\n      }\n      pcVar1[8] = '\0';\n      pcVar1[9] = '\0';\n      pcVar1[10] = '\0';\n      pcVar1[0xb] = '\0';\n      do {\n        pTVar5 = *(Task **)(pcVar1 + 0xc);\n        if (pTVar5 == (Task *)0x0) break;\n        iVar3 = *(int *)(pTVar5 + 4);\n        if (pTVar5 == *(Task **)(pcVar1 + 0x10)) {\n          if (iVar3 != 0) goto LAB_002d3a94;\n          pcVar1[0xc] = '\0';\n          pcVar1[0xd] = '\0';\n          pcVar1[0xe] = '\0';\n          pcVar1[0xf] = '\0';\n          pcVar1[0x10] = '\0';\n          pcVar1[0x11] = '\0';\n          pcVar1[0x12] = '\0';\n          pcVar1[0x13] = '\0';\n        }\n        else {\n          *(int *)(pcVar1 + 0xc) = iVar3;\n          if (iVar3 == 0) goto LAB_002d3a5c;\n          *(undefined4 *)(pTVar5 + 4) = 0;\n        }\n        *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n        iVar3 = return_or_queue(this_00,pTVar5,false,apTStack_48);\n      } while (iVar3 == 0);\nLAB_002d398c:\n      iVar3 = *piVar7;\n      piVar8 = piVar8 + 1;\n    } while (piVar8 != piVar7 + iVar3 + 1);\n  }" { (expression_statement "pWStack_40 = this;" (assignment_expression "pWStack_40 = this" identifier = identifier) ;) (do_statement "do {\n      while (pcVar1 = (char *)*piVar8, *pcVar1 != '\0') {\n        iVar2 = *(int *)(pcVar1 + 4) + -1;\n        if (*(int *)(pcVar1 + 4) < 1) {\n          uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                            (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0xa1,\n                             *(int *)(puVar9 + 0x1ee098) + 0x3a6c);\n          return uVar6;\n        }\n        pcVar1[8] = '\0';\n        pcVar1[9] = '\0';\n        pcVar1[10] = '\0';\n        pcVar1[0xb] = '\0';\n        *(int *)(pcVar1 + 4) = iVar2;\n        if ((iVar2 == 0) && (pTVar5 = *(Task **)(pcVar1 + 0xc), pTVar5 != (Task *)0x0)) {\n          iVar3 = *(int *)(pTVar5 + 4);\n          if (*(Task **)(pcVar1 + 0x10) == pTVar5) goto LAB_002d3a40;\n          while (*(int *)(pcVar1 + 0xc) = iVar3, iVar3 != 0) {\n            *(undefined4 *)(pTVar5 + 4) = 0;\n            while( true ) {\n              *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n              return_or_queue(this_00,pTVar5,true,apTStack_48);\n              pTVar5 = *(Task **)(pcVar1 + 0xc);\n              if (pTVar5 == (Task *)0x0) goto LAB_002d398c;\n              iVar3 = *(int *)(pTVar5 + 4);\n              if (*(Task **)(pcVar1 + 0x10) != pTVar5) break;\nLAB_002d3a40:\n              if (iVar3 != 0) goto LAB_002d3a94;\n              pcVar1[0xc] = '\0';\n              pcVar1[0xd] = '\0';\n              pcVar1[0xe] = '\0';\n              pcVar1[0xf] = '\0';\n              pcVar1[0x10] = '\0';\n              pcVar1[0x11] = '\0';\n              pcVar1[0x12] = '\0';\n              pcVar1[0x13] = '\0';\n            }\n          }\nLAB_002d3a5c:\n          uVar6 = 0x5a;\n          goto LAB_002d3a60;\n        }\n        piVar8 = piVar8 + 1;\n        if (piVar8 == piVar7 + iVar3 + 1) {\n          return apTStack_48[0];\n        }\n      }\n      if (iVar4 != *(int *)(pcVar1 + 8)) {\n        uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                          (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0x84,\n                           *(int *)(puVar9 + 0x1ee098) + 0x3a5c);\n        return uVar6;\n      }\n      pcVar1[8] = '\0';\n      pcVar1[9] = '\0';\n      pcVar1[10] = '\0';\n      pcVar1[0xb] = '\0';\n      do {\n        pTVar5 = *(Task **)(pcVar1 + 0xc);\n        if (pTVar5 == (Task *)0x0) break;\n        iVar3 = *(int *)(pTVar5 + 4);\n        if (pTVar5 == *(Task **)(pcVar1 + 0x10)) {\n          if (iVar3 != 0) goto LAB_002d3a94;\n          pcVar1[0xc] = '\0';\n          pcVar1[0xd] = '\0';\n          pcVar1[0xe] = '\0';\n          pcVar1[0xf] = '\0';\n          pcVar1[0x10] = '\0';\n          pcVar1[0x11] = '\0';\n          pcVar1[0x12] = '\0';\n          pcVar1[0x13] = '\0';\n        }\n        else {\n          *(int *)(pcVar1 + 0xc) = iVar3;\n          if (iVar3 == 0) goto LAB_002d3a5c;\n          *(undefined4 *)(pTVar5 + 4) = 0;\n        }\n        *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n        iVar3 = return_or_queue(this_00,pTVar5,false,apTStack_48);\n      } while (iVar3 == 0);\nLAB_002d398c:\n      iVar3 = *piVar7;\n      piVar8 = piVar8 + 1;\n    } while (piVar8 != piVar7 + iVar3 + 1);" do (compound_statement "{\n      while (pcVar1 = (char *)*piVar8, *pcVar1 != '\0') {\n        iVar2 = *(int *)(pcVar1 + 4) + -1;\n        if (*(int *)(pcVar1 + 4) < 1) {\n          uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                            (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0xa1,\n                             *(int *)(puVar9 + 0x1ee098) + 0x3a6c);\n          return uVar6;\n        }\n        pcVar1[8] = '\0';\n        pcVar1[9] = '\0';\n        pcVar1[10] = '\0';\n        pcVar1[0xb] = '\0';\n        *(int *)(pcVar1 + 4) = iVar2;\n        if ((iVar2 == 0) && (pTVar5 = *(Task **)(pcVar1 + 0xc), pTVar5 != (Task *)0x0)) {\n          iVar3 = *(int *)(pTVar5 + 4);\n          if (*(Task **)(pcVar1 + 0x10) == pTVar5) goto LAB_002d3a40;\n          while (*(int *)(pcVar1 + 0xc) = iVar3, iVar3 != 0) {\n            *(undefined4 *)(pTVar5 + 4) = 0;\n            while( true ) {\n              *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n              return_or_queue(this_00,pTVar5,true,apTStack_48);\n              pTVar5 = *(Task **)(pcVar1 + 0xc);\n              if (pTVar5 == (Task *)0x0) goto LAB_002d398c;\n              iVar3 = *(int *)(pTVar5 + 4);\n              if (*(Task **)(pcVar1 + 0x10) != pTVar5) break;\nLAB_002d3a40:\n              if (iVar3 != 0) goto LAB_002d3a94;\n              pcVar1[0xc] = '\0';\n              pcVar1[0xd] = '\0';\n              pcVar1[0xe] = '\0';\n              pcVar1[0xf] = '\0';\n              pcVar1[0x10] = '\0';\n              pcVar1[0x11] = '\0';\n              pcVar1[0x12] = '\0';\n              pcVar1[0x13] = '\0';\n            }\n          }\nLAB_002d3a5c:\n          uVar6 = 0x5a;\n          goto LAB_002d3a60;\n        }\n        piVar8 = piVar8 + 1;\n        if (piVar8 == piVar7 + iVar3 + 1) {\n          return apTStack_48[0];\n        }\n      }\n      if (iVar4 != *(int *)(pcVar1 + 8)) {\n        uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                          (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0x84,\n                           *(int *)(puVar9 + 0x1ee098) + 0x3a5c);\n        return uVar6;\n      }\n      pcVar1[8] = '\0';\n      pcVar1[9] = '\0';\n      pcVar1[10] = '\0';\n      pcVar1[0xb] = '\0';\n      do {\n        pTVar5 = *(Task **)(pcVar1 + 0xc);\n        if (pTVar5 == (Task *)0x0) break;\n        iVar3 = *(int *)(pTVar5 + 4);\n        if (pTVar5 == *(Task **)(pcVar1 + 0x10)) {\n          if (iVar3 != 0) goto LAB_002d3a94;\n          pcVar1[0xc] = '\0';\n          pcVar1[0xd] = '\0';\n          pcVar1[0xe] = '\0';\n          pcVar1[0xf] = '\0';\n          pcVar1[0x10] = '\0';\n          pcVar1[0x11] = '\0';\n          pcVar1[0x12] = '\0';\n          pcVar1[0x13] = '\0';\n        }\n        else {\n          *(int *)(pcVar1 + 0xc) = iVar3;\n          if (iVar3 == 0) goto LAB_002d3a5c;\n          *(undefined4 *)(pTVar5 + 4) = 0;\n        }\n        *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n        iVar3 = return_or_queue(this_00,pTVar5,false,apTStack_48);\n      } while (iVar3 == 0);\nLAB_002d398c:\n      iVar3 = *piVar7;\n      piVar8 = piVar8 + 1;\n    }" { (while_statement "while (pcVar1 = (char *)*piVar8, *pcVar1 != '\0') {\n        iVar2 = *(int *)(pcVar1 + 4) + -1;\n        if (*(int *)(pcVar1 + 4) < 1) {\n          uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                            (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0xa1,\n                             *(int *)(puVar9 + 0x1ee098) + 0x3a6c);\n          return uVar6;\n        }\n        pcVar1[8] = '\0';\n        pcVar1[9] = '\0';\n        pcVar1[10] = '\0';\n        pcVar1[0xb] = '\0';\n        *(int *)(pcVar1 + 4) = iVar2;\n        if ((iVar2 == 0) && (pTVar5 = *(Task **)(pcVar1 + 0xc), pTVar5 != (Task *)0x0)) {\n          iVar3 = *(int *)(pTVar5 + 4);\n          if (*(Task **)(pcVar1 + 0x10) == pTVar5) goto LAB_002d3a40;\n          while (*(int *)(pcVar1 + 0xc) = iVar3, iVar3 != 0) {\n            *(undefined4 *)(pTVar5 + 4) = 0;\n            while( true ) {\n              *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n              return_or_queue(this_00,pTVar5,true,apTStack_48);\n              pTVar5 = *(Task **)(pcVar1 + 0xc);\n              if (pTVar5 == (Task *)0x0) goto LAB_002d398c;\n              iVar3 = *(int *)(pTVar5 + 4);\n              if (*(Task **)(pcVar1 + 0x10) != pTVar5) break;\nLAB_002d3a40:\n              if (iVar3 != 0) goto LAB_002d3a94;\n              pcVar1[0xc] = '\0';\n              pcVar1[0xd] = '\0';\n              pcVar1[0xe] = '\0';\n              pcVar1[0xf] = '\0';\n              pcVar1[0x10] = '\0';\n              pcVar1[0x11] = '\0';\n              pcVar1[0x12] = '\0';\n              pcVar1[0x13] = '\0';\n            }\n          }\nLAB_002d3a5c:\n          uVar6 = 0x5a;\n          goto LAB_002d3a60;\n        }\n        piVar8 = piVar8 + 1;\n        if (piVar8 == piVar7 + iVar3 + 1) {\n          return apTStack_48[0];\n        }\n      }" while (parenthesized_expression "(pcVar1 = (char *)*piVar8, *pcVar1 != '\0')" ( (comma_expression "pcVar1 = (char *)*piVar8, *pcVar1 != '\0'" (assignment_expression "pcVar1 = (char *)*piVar8" identifier = (cast_expression "(char *)*piVar8" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar8" * identifier))) , (binary_expression "*pcVar1 != '\0'" (pointer_expression "*pcVar1" * identifier) != (char_literal "'\0'" ' escape_sequence '))) )) (compound_statement "{\n        iVar2 = *(int *)(pcVar1 + 4) + -1;\n        if (*(int *)(pcVar1 + 4) < 1) {\n          uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                            (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0xa1,\n                             *(int *)(puVar9 + 0x1ee098) + 0x3a6c);\n          return uVar6;\n        }\n        pcVar1[8] = '\0';\n        pcVar1[9] = '\0';\n        pcVar1[10] = '\0';\n        pcVar1[0xb] = '\0';\n        *(int *)(pcVar1 + 4) = iVar2;\n        if ((iVar2 == 0) && (pTVar5 = *(Task **)(pcVar1 + 0xc), pTVar5 != (Task *)0x0)) {\n          iVar3 = *(int *)(pTVar5 + 4);\n          if (*(Task **)(pcVar1 + 0x10) == pTVar5) goto LAB_002d3a40;\n          while (*(int *)(pcVar1 + 0xc) = iVar3, iVar3 != 0) {\n            *(undefined4 *)(pTVar5 + 4) = 0;\n            while( true ) {\n              *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n              return_or_queue(this_00,pTVar5,true,apTStack_48);\n              pTVar5 = *(Task **)(pcVar1 + 0xc);\n              if (pTVar5 == (Task *)0x0) goto LAB_002d398c;\n              iVar3 = *(int *)(pTVar5 + 4);\n              if (*(Task **)(pcVar1 + 0x10) != pTVar5) break;\nLAB_002d3a40:\n              if (iVar3 != 0) goto LAB_002d3a94;\n              pcVar1[0xc] = '\0';\n              pcVar1[0xd] = '\0';\n              pcVar1[0xe] = '\0';\n              pcVar1[0xf] = '\0';\n              pcVar1[0x10] = '\0';\n              pcVar1[0x11] = '\0';\n              pcVar1[0x12] = '\0';\n              pcVar1[0x13] = '\0';\n            }\n          }\nLAB_002d3a5c:\n          uVar6 = 0x5a;\n          goto LAB_002d3a60;\n        }\n        piVar8 = piVar8 + 1;\n        if (piVar8 == piVar7 + iVar3 + 1) {\n          return apTStack_48[0];\n        }\n      }" { (expression_statement "iVar2 = *(int *)(pcVar1 + 4) + -1;" (assignment_expression "iVar2 = *(int *)(pcVar1 + 4) + -1" identifier = (binary_expression "*(int *)(pcVar1 + 4) + -1" (pointer_expression "*(int *)(pcVar1 + 4)" * (cast_expression "(int *)(pcVar1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar1 + 4)" ( (binary_expression "pcVar1 + 4" identifier + number_literal) )))) + number_literal)) ;) (if_statement "if (*(int *)(pcVar1 + 4) < 1) {\n          uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                            (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0xa1,\n                             *(int *)(puVar9 + 0x1ee098) + 0x3a6c);\n          return uVar6;\n        }" if (parenthesized_expression "(*(int *)(pcVar1 + 4) < 1)" ( (binary_expression "*(int *)(pcVar1 + 4) < 1" (pointer_expression "*(int *)(pcVar1 + 4)" * (cast_expression "(int *)(pcVar1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar1 + 4)" ( (binary_expression "pcVar1 + 4" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n          uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                            (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0xa1,\n                             *(int *)(puVar9 + 0x1ee098) + 0x3a6c);\n          return uVar6;\n        }" { (expression_statement "uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                            (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0xa1,\n                             *(int *)(puVar9 + 0x1ee098) + 0x3a6c);" (assignment_expression "uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                            (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0xa1,\n                             *(int *)(puVar9 + 0x1ee098) + 0x3a6c)" identifier = (call_expression "(**(code **)(puVar9 + 0x1ee1ac))\n                            (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0xa1,\n                             *(int *)(puVar9 + 0x1ee098) + 0x3a6c)" (parenthesized_expression "(**(code **)(puVar9 + 0x1ee1ac))" ( (pointer_expression "**(code **)(puVar9 + 0x1ee1ac)" * (pointer_expression "*(code **)(puVar9 + 0x1ee1ac)" * (cast_expression "(code **)(puVar9 + 0x1ee1ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0x1ee1ac)" ( (binary_expression "puVar9 + 0x1ee1ac" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0xa1,\n                             *(int *)(puVar9 + 0x1ee098) + 0x3a6c)" ( (binary_expression "*(int *)(puVar9 + 0x1ed9f8) + -0x7f8" (pointer_expression "*(int *)(puVar9 + 0x1ed9f8)" * (cast_expression "(int *)(puVar9 + 0x1ed9f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0x1ed9f8)" ( (binary_expression "puVar9 + 0x1ed9f8" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar9 + 0x1ee098) + 0x3a6c" (pointer_expression "*(int *)(puVar9 + 0x1ee098)" * (cast_expression "(int *)(puVar9 + 0x1ee098)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0x1ee098)" ( (binary_expression "puVar9 + 0x1ee098" identifier + number_literal) )))) + number_literal) )))) ;) (return_statement "return uVar6;" return identifier ;) })) (expression_statement "pcVar1[8] = '\0';" (assignment_expression "pcVar1[8] = '\0'" (subscript_expression "pcVar1[8]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar1[9] = '\0';" (assignment_expression "pcVar1[9] = '\0'" (subscript_expression "pcVar1[9]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar1[10] = '\0';" (assignment_expression "pcVar1[10] = '\0'" (subscript_expression "pcVar1[10]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar1[0xb] = '\0';" (assignment_expression "pcVar1[0xb] = '\0'" (subscript_expression "pcVar1[0xb]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "*(int *)(pcVar1 + 4) = iVar2;" (assignment_expression "*(int *)(pcVar1 + 4) = iVar2" (pointer_expression "*(int *)(pcVar1 + 4)" * (cast_expression "(int *)(pcVar1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar1 + 4)" ( (binary_expression "pcVar1 + 4" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((iVar2 == 0) && (pTVar5 = *(Task **)(pcVar1 + 0xc), pTVar5 != (Task *)0x0)) {\n          iVar3 = *(int *)(pTVar5 + 4);\n          if (*(Task **)(pcVar1 + 0x10) == pTVar5) goto LAB_002d3a40;\n          while (*(int *)(pcVar1 + 0xc) = iVar3, iVar3 != 0) {\n            *(undefined4 *)(pTVar5 + 4) = 0;\n            while( true ) {\n              *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n              return_or_queue(this_00,pTVar5,true,apTStack_48);\n              pTVar5 = *(Task **)(pcVar1 + 0xc);\n              if (pTVar5 == (Task *)0x0) goto LAB_002d398c;\n              iVar3 = *(int *)(pTVar5 + 4);\n              if (*(Task **)(pcVar1 + 0x10) != pTVar5) break;\nLAB_002d3a40:\n              if (iVar3 != 0) goto LAB_002d3a94;\n              pcVar1[0xc] = '\0';\n              pcVar1[0xd] = '\0';\n              pcVar1[0xe] = '\0';\n              pcVar1[0xf] = '\0';\n              pcVar1[0x10] = '\0';\n              pcVar1[0x11] = '\0';\n              pcVar1[0x12] = '\0';\n              pcVar1[0x13] = '\0';\n            }\n          }\nLAB_002d3a5c:\n          uVar6 = 0x5a;\n          goto LAB_002d3a60;\n        }" if (parenthesized_expression "((iVar2 == 0) && (pTVar5 = *(Task **)(pcVar1 + 0xc), pTVar5 != (Task *)0x0))" ( (binary_expression "(iVar2 == 0) && (pTVar5 = *(Task **)(pcVar1 + 0xc), pTVar5 != (Task *)0x0)" (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) && (parenthesized_expression "(pTVar5 = *(Task **)(pcVar1 + 0xc), pTVar5 != (Task *)0x0)" ( (comma_expression "pTVar5 = *(Task **)(pcVar1 + 0xc), pTVar5 != (Task *)0x0" (assignment_expression "pTVar5 = *(Task **)(pcVar1 + 0xc)" identifier = (pointer_expression "*(Task **)(pcVar1 + 0xc)" * (cast_expression "(Task **)(pcVar1 + 0xc)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar1 + 0xc)" ( (binary_expression "pcVar1 + 0xc" identifier + number_literal) ))))) , (binary_expression "pTVar5 != (Task *)0x0" identifier != (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n          iVar3 = *(int *)(pTVar5 + 4);\n          if (*(Task **)(pcVar1 + 0x10) == pTVar5) goto LAB_002d3a40;\n          while (*(int *)(pcVar1 + 0xc) = iVar3, iVar3 != 0) {\n            *(undefined4 *)(pTVar5 + 4) = 0;\n            while( true ) {\n              *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n              return_or_queue(this_00,pTVar5,true,apTStack_48);\n              pTVar5 = *(Task **)(pcVar1 + 0xc);\n              if (pTVar5 == (Task *)0x0) goto LAB_002d398c;\n              iVar3 = *(int *)(pTVar5 + 4);\n              if (*(Task **)(pcVar1 + 0x10) != pTVar5) break;\nLAB_002d3a40:\n              if (iVar3 != 0) goto LAB_002d3a94;\n              pcVar1[0xc] = '\0';\n              pcVar1[0xd] = '\0';\n              pcVar1[0xe] = '\0';\n              pcVar1[0xf] = '\0';\n              pcVar1[0x10] = '\0';\n              pcVar1[0x11] = '\0';\n              pcVar1[0x12] = '\0';\n              pcVar1[0x13] = '\0';\n            }\n          }\nLAB_002d3a5c:\n          uVar6 = 0x5a;\n          goto LAB_002d3a60;\n        }" { (expression_statement "iVar3 = *(int *)(pTVar5 + 4);" (assignment_expression "iVar3 = *(int *)(pTVar5 + 4)" identifier = (pointer_expression "*(int *)(pTVar5 + 4)" * (cast_expression "(int *)(pTVar5 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pTVar5 + 4)" ( (binary_expression "pTVar5 + 4" identifier + number_literal) ))))) ;) (if_statement "if (*(Task **)(pcVar1 + 0x10) == pTVar5) goto LAB_002d3a40;" if (parenthesized_expression "(*(Task **)(pcVar1 + 0x10) == pTVar5)" ( (binary_expression "*(Task **)(pcVar1 + 0x10) == pTVar5" (pointer_expression "*(Task **)(pcVar1 + 0x10)" * (cast_expression "(Task **)(pcVar1 + 0x10)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar1 + 0x10)" ( (binary_expression "pcVar1 + 0x10" identifier + number_literal) )))) == identifier) )) (goto_statement "goto LAB_002d3a40;" goto statement_identifier ;)) (while_statement "while (*(int *)(pcVar1 + 0xc) = iVar3, iVar3 != 0) {\n            *(undefined4 *)(pTVar5 + 4) = 0;\n            while( true ) {\n              *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n              return_or_queue(this_00,pTVar5,true,apTStack_48);\n              pTVar5 = *(Task **)(pcVar1 + 0xc);\n              if (pTVar5 == (Task *)0x0) goto LAB_002d398c;\n              iVar3 = *(int *)(pTVar5 + 4);\n              if (*(Task **)(pcVar1 + 0x10) != pTVar5) break;\nLAB_002d3a40:\n              if (iVar3 != 0) goto LAB_002d3a94;\n              pcVar1[0xc] = '\0';\n              pcVar1[0xd] = '\0';\n              pcVar1[0xe] = '\0';\n              pcVar1[0xf] = '\0';\n              pcVar1[0x10] = '\0';\n              pcVar1[0x11] = '\0';\n              pcVar1[0x12] = '\0';\n              pcVar1[0x13] = '\0';\n            }\n          }" while (parenthesized_expression "(*(int *)(pcVar1 + 0xc) = iVar3, iVar3 != 0)" ( (comma_expression "*(int *)(pcVar1 + 0xc) = iVar3, iVar3 != 0" (assignment_expression "*(int *)(pcVar1 + 0xc) = iVar3" (pointer_expression "*(int *)(pcVar1 + 0xc)" * (cast_expression "(int *)(pcVar1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar1 + 0xc)" ( (binary_expression "pcVar1 + 0xc" identifier + number_literal) )))) = identifier) , (binary_expression "iVar3 != 0" identifier != number_literal)) )) (compound_statement "{\n            *(undefined4 *)(pTVar5 + 4) = 0;\n            while( true ) {\n              *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n              return_or_queue(this_00,pTVar5,true,apTStack_48);\n              pTVar5 = *(Task **)(pcVar1 + 0xc);\n              if (pTVar5 == (Task *)0x0) goto LAB_002d398c;\n              iVar3 = *(int *)(pTVar5 + 4);\n              if (*(Task **)(pcVar1 + 0x10) != pTVar5) break;\nLAB_002d3a40:\n              if (iVar3 != 0) goto LAB_002d3a94;\n              pcVar1[0xc] = '\0';\n              pcVar1[0xd] = '\0';\n              pcVar1[0xe] = '\0';\n              pcVar1[0xf] = '\0';\n              pcVar1[0x10] = '\0';\n              pcVar1[0x11] = '\0';\n              pcVar1[0x12] = '\0';\n              pcVar1[0x13] = '\0';\n            }\n          }" { (expression_statement "*(undefined4 *)(pTVar5 + 4) = 0;" (assignment_expression "*(undefined4 *)(pTVar5 + 4) = 0" (pointer_expression "*(undefined4 *)(pTVar5 + 4)" * (cast_expression "(undefined4 *)(pTVar5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pTVar5 + 4)" ( (binary_expression "pTVar5 + 4" identifier + number_literal) )))) = number_literal) ;) (while_statement "while( true ) {\n              *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n              return_or_queue(this_00,pTVar5,true,apTStack_48);\n              pTVar5 = *(Task **)(pcVar1 + 0xc);\n              if (pTVar5 == (Task *)0x0) goto LAB_002d398c;\n              iVar3 = *(int *)(pTVar5 + 4);\n              if (*(Task **)(pcVar1 + 0x10) != pTVar5) break;\nLAB_002d3a40:\n              if (iVar3 != 0) goto LAB_002d3a94;\n              pcVar1[0xc] = '\0';\n              pcVar1[0xd] = '\0';\n              pcVar1[0xe] = '\0';\n              pcVar1[0xf] = '\0';\n              pcVar1[0x10] = '\0';\n              pcVar1[0x11] = '\0';\n              pcVar1[0x12] = '\0';\n              pcVar1[0x13] = '\0';\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n              return_or_queue(this_00,pTVar5,true,apTStack_48);\n              pTVar5 = *(Task **)(pcVar1 + 0xc);\n              if (pTVar5 == (Task *)0x0) goto LAB_002d398c;\n              iVar3 = *(int *)(pTVar5 + 4);\n              if (*(Task **)(pcVar1 + 0x10) != pTVar5) break;\nLAB_002d3a40:\n              if (iVar3 != 0) goto LAB_002d3a94;\n              pcVar1[0xc] = '\0';\n              pcVar1[0xd] = '\0';\n              pcVar1[0xe] = '\0';\n              pcVar1[0xf] = '\0';\n              pcVar1[0x10] = '\0';\n              pcVar1[0x11] = '\0';\n              pcVar1[0x12] = '\0';\n              pcVar1[0x13] = '\0';\n            }" { (expression_statement "*(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;" (assignment_expression "*(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1" (pointer_expression "*(int *)(this_00 + 0x18)" * (cast_expression "(int *)(this_00 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this_00 + 0x18)" ( (binary_expression "this_00 + 0x18" identifier + number_literal) )))) = (binary_expression "*(int *)(this_00 + 0x18) + -1" (pointer_expression "*(int *)(this_00 + 0x18)" * (cast_expression "(int *)(this_00 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this_00 + 0x18)" ( (binary_expression "this_00 + 0x18" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "return_or_queue(this_00,pTVar5,true,apTStack_48);" (call_expression "return_or_queue(this_00,pTVar5,true,apTStack_48)" identifier (argument_list "(this_00,pTVar5,true,apTStack_48)" ( identifier , identifier , true , identifier ))) ;) (expression_statement "pTVar5 = *(Task **)(pcVar1 + 0xc);" (assignment_expression "pTVar5 = *(Task **)(pcVar1 + 0xc)" identifier = (pointer_expression "*(Task **)(pcVar1 + 0xc)" * (cast_expression "(Task **)(pcVar1 + 0xc)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar1 + 0xc)" ( (binary_expression "pcVar1 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (pTVar5 == (Task *)0x0) goto LAB_002d398c;" if (parenthesized_expression "(pTVar5 == (Task *)0x0)" ( (binary_expression "pTVar5 == (Task *)0x0" identifier == (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_002d398c;" goto statement_identifier ;)) (expression_statement "iVar3 = *(int *)(pTVar5 + 4);" (assignment_expression "iVar3 = *(int *)(pTVar5 + 4)" identifier = (pointer_expression "*(int *)(pTVar5 + 4)" * (cast_expression "(int *)(pTVar5 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pTVar5 + 4)" ( (binary_expression "pTVar5 + 4" identifier + number_literal) ))))) ;) (if_statement "if (*(Task **)(pcVar1 + 0x10) != pTVar5) break;" if (parenthesized_expression "(*(Task **)(pcVar1 + 0x10) != pTVar5)" ( (binary_expression "*(Task **)(pcVar1 + 0x10) != pTVar5" (pointer_expression "*(Task **)(pcVar1 + 0x10)" * (cast_expression "(Task **)(pcVar1 + 0x10)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar1 + 0x10)" ( (binary_expression "pcVar1 + 0x10" identifier + number_literal) )))) != identifier) )) (break_statement "break;" break ;)) (labeled_statement "LAB_002d3a40:\n              if (iVar3 != 0) goto LAB_002d3a94;" statement_identifier : (if_statement "if (iVar3 != 0) goto LAB_002d3a94;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_002d3a94;" goto statement_identifier ;))) (expression_statement "pcVar1[0xc] = '\0';" (assignment_expression "pcVar1[0xc] = '\0'" (subscript_expression "pcVar1[0xc]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar1[0xd] = '\0';" (assignment_expression "pcVar1[0xd] = '\0'" (subscript_expression "pcVar1[0xd]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar1[0xe] = '\0';" (assignment_expression "pcVar1[0xe] = '\0'" (subscript_expression "pcVar1[0xe]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar1[0xf] = '\0';" (assignment_expression "pcVar1[0xf] = '\0'" (subscript_expression "pcVar1[0xf]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar1[0x10] = '\0';" (assignment_expression "pcVar1[0x10] = '\0'" (subscript_expression "pcVar1[0x10]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar1[0x11] = '\0';" (assignment_expression "pcVar1[0x11] = '\0'" (subscript_expression "pcVar1[0x11]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar1[0x12] = '\0';" (assignment_expression "pcVar1[0x12] = '\0'" (subscript_expression "pcVar1[0x12]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar1[0x13] = '\0';" (assignment_expression "pcVar1[0x13] = '\0'" (subscript_expression "pcVar1[0x13]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) })) })) (labeled_statement "LAB_002d3a5c:\n          uVar6 = 0x5a;" statement_identifier : (expression_statement "uVar6 = 0x5a;" (assignment_expression "uVar6 = 0x5a" identifier = number_literal) ;)) (goto_statement "goto LAB_002d3a60;" goto statement_identifier ;) })) (expression_statement "piVar8 = piVar8 + 1;" (assignment_expression "piVar8 = piVar8 + 1" identifier = (binary_expression "piVar8 + 1" identifier + number_literal)) ;) (if_statement "if (piVar8 == piVar7 + iVar3 + 1) {\n          return apTStack_48[0];\n        }" if (parenthesized_expression "(piVar8 == piVar7 + iVar3 + 1)" ( (binary_expression "piVar8 == piVar7 + iVar3 + 1" identifier == (binary_expression "piVar7 + iVar3 + 1" (binary_expression "piVar7 + iVar3" identifier + identifier) + number_literal)) )) (compound_statement "{\n          return apTStack_48[0];\n        }" { (return_statement "return apTStack_48[0];" return (subscript_expression "apTStack_48[0]" identifier [ number_literal ]) ;) })) })) (if_statement "if (iVar4 != *(int *)(pcVar1 + 8)) {\n        uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                          (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0x84,\n                           *(int *)(puVar9 + 0x1ee098) + 0x3a5c);\n        return uVar6;\n      }" if (parenthesized_expression "(iVar4 != *(int *)(pcVar1 + 8))" ( (binary_expression "iVar4 != *(int *)(pcVar1 + 8)" identifier != (pointer_expression "*(int *)(pcVar1 + 8)" * (cast_expression "(int *)(pcVar1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar1 + 8)" ( (binary_expression "pcVar1 + 8" identifier + number_literal) ))))) )) (compound_statement "{\n        uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                          (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0x84,\n                           *(int *)(puVar9 + 0x1ee098) + 0x3a5c);\n        return uVar6;\n      }" { (expression_statement "uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                          (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0x84,\n                           *(int *)(puVar9 + 0x1ee098) + 0x3a5c);" (assignment_expression "uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                          (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0x84,\n                           *(int *)(puVar9 + 0x1ee098) + 0x3a5c)" identifier = (call_expression "(**(code **)(puVar9 + 0x1ee1ac))\n                          (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0x84,\n                           *(int *)(puVar9 + 0x1ee098) + 0x3a5c)" (parenthesized_expression "(**(code **)(puVar9 + 0x1ee1ac))" ( (pointer_expression "**(code **)(puVar9 + 0x1ee1ac)" * (pointer_expression "*(code **)(puVar9 + 0x1ee1ac)" * (cast_expression "(code **)(puVar9 + 0x1ee1ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0x1ee1ac)" ( (binary_expression "puVar9 + 0x1ee1ac" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0x84,\n                           *(int *)(puVar9 + 0x1ee098) + 0x3a5c)" ( (binary_expression "*(int *)(puVar9 + 0x1ed9f8) + -0x7f8" (pointer_expression "*(int *)(puVar9 + 0x1ed9f8)" * (cast_expression "(int *)(puVar9 + 0x1ed9f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0x1ed9f8)" ( (binary_expression "puVar9 + 0x1ed9f8" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar9 + 0x1ee098) + 0x3a5c" (pointer_expression "*(int *)(puVar9 + 0x1ee098)" * (cast_expression "(int *)(puVar9 + 0x1ee098)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0x1ee098)" ( (binary_expression "puVar9 + 0x1ee098" identifier + number_literal) )))) + number_literal) )))) ;) (return_statement "return uVar6;" return identifier ;) })) (expression_statement "pcVar1[8] = '\0';" (assignment_expression "pcVar1[8] = '\0'" (subscript_expression "pcVar1[8]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar1[9] = '\0';" (assignment_expression "pcVar1[9] = '\0'" (subscript_expression "pcVar1[9]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar1[10] = '\0';" (assignment_expression "pcVar1[10] = '\0'" (subscript_expression "pcVar1[10]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar1[0xb] = '\0';" (assignment_expression "pcVar1[0xb] = '\0'" (subscript_expression "pcVar1[0xb]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (do_statement "do {\n        pTVar5 = *(Task **)(pcVar1 + 0xc);\n        if (pTVar5 == (Task *)0x0) break;\n        iVar3 = *(int *)(pTVar5 + 4);\n        if (pTVar5 == *(Task **)(pcVar1 + 0x10)) {\n          if (iVar3 != 0) goto LAB_002d3a94;\n          pcVar1[0xc] = '\0';\n          pcVar1[0xd] = '\0';\n          pcVar1[0xe] = '\0';\n          pcVar1[0xf] = '\0';\n          pcVar1[0x10] = '\0';\n          pcVar1[0x11] = '\0';\n          pcVar1[0x12] = '\0';\n          pcVar1[0x13] = '\0';\n        }\n        else {\n          *(int *)(pcVar1 + 0xc) = iVar3;\n          if (iVar3 == 0) goto LAB_002d3a5c;\n          *(undefined4 *)(pTVar5 + 4) = 0;\n        }\n        *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n        iVar3 = return_or_queue(this_00,pTVar5,false,apTStack_48);\n      } while (iVar3 == 0);" do (compound_statement "{\n        pTVar5 = *(Task **)(pcVar1 + 0xc);\n        if (pTVar5 == (Task *)0x0) break;\n        iVar3 = *(int *)(pTVar5 + 4);\n        if (pTVar5 == *(Task **)(pcVar1 + 0x10)) {\n          if (iVar3 != 0) goto LAB_002d3a94;\n          pcVar1[0xc] = '\0';\n          pcVar1[0xd] = '\0';\n          pcVar1[0xe] = '\0';\n          pcVar1[0xf] = '\0';\n          pcVar1[0x10] = '\0';\n          pcVar1[0x11] = '\0';\n          pcVar1[0x12] = '\0';\n          pcVar1[0x13] = '\0';\n        }\n        else {\n          *(int *)(pcVar1 + 0xc) = iVar3;\n          if (iVar3 == 0) goto LAB_002d3a5c;\n          *(undefined4 *)(pTVar5 + 4) = 0;\n        }\n        *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n        iVar3 = return_or_queue(this_00,pTVar5,false,apTStack_48);\n      }" { (expression_statement "pTVar5 = *(Task **)(pcVar1 + 0xc);" (assignment_expression "pTVar5 = *(Task **)(pcVar1 + 0xc)" identifier = (pointer_expression "*(Task **)(pcVar1 + 0xc)" * (cast_expression "(Task **)(pcVar1 + 0xc)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar1 + 0xc)" ( (binary_expression "pcVar1 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (pTVar5 == (Task *)0x0) break;" if (parenthesized_expression "(pTVar5 == (Task *)0x0)" ( (binary_expression "pTVar5 == (Task *)0x0" identifier == (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "iVar3 = *(int *)(pTVar5 + 4);" (assignment_expression "iVar3 = *(int *)(pTVar5 + 4)" identifier = (pointer_expression "*(int *)(pTVar5 + 4)" * (cast_expression "(int *)(pTVar5 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pTVar5 + 4)" ( (binary_expression "pTVar5 + 4" identifier + number_literal) ))))) ;) (if_statement "if (pTVar5 == *(Task **)(pcVar1 + 0x10)) {\n          if (iVar3 != 0) goto LAB_002d3a94;\n          pcVar1[0xc] = '\0';\n          pcVar1[0xd] = '\0';\n          pcVar1[0xe] = '\0';\n          pcVar1[0xf] = '\0';\n          pcVar1[0x10] = '\0';\n          pcVar1[0x11] = '\0';\n          pcVar1[0x12] = '\0';\n          pcVar1[0x13] = '\0';\n        }\n        else {\n          *(int *)(pcVar1 + 0xc) = iVar3;\n          if (iVar3 == 0) goto LAB_002d3a5c;\n          *(undefined4 *)(pTVar5 + 4) = 0;\n        }" if (parenthesized_expression "(pTVar5 == *(Task **)(pcVar1 + 0x10))" ( (binary_expression "pTVar5 == *(Task **)(pcVar1 + 0x10)" identifier == (pointer_expression "*(Task **)(pcVar1 + 0x10)" * (cast_expression "(Task **)(pcVar1 + 0x10)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar1 + 0x10)" ( (binary_expression "pcVar1 + 0x10" identifier + number_literal) ))))) )) (compound_statement "{\n          if (iVar3 != 0) goto LAB_002d3a94;\n          pcVar1[0xc] = '\0';\n          pcVar1[0xd] = '\0';\n          pcVar1[0xe] = '\0';\n          pcVar1[0xf] = '\0';\n          pcVar1[0x10] = '\0';\n          pcVar1[0x11] = '\0';\n          pcVar1[0x12] = '\0';\n          pcVar1[0x13] = '\0';\n        }" { (if_statement "if (iVar3 != 0) goto LAB_002d3a94;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_002d3a94;" goto statement_identifier ;)) (expression_statement "pcVar1[0xc] = '\0';" (assignment_expression "pcVar1[0xc] = '\0'" (subscript_expression "pcVar1[0xc]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar1[0xd] = '\0';" (assignment_expression "pcVar1[0xd] = '\0'" (subscript_expression "pcVar1[0xd]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar1[0xe] = '\0';" (assignment_expression "pcVar1[0xe] = '\0'" (subscript_expression "pcVar1[0xe]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar1[0xf] = '\0';" (assignment_expression "pcVar1[0xf] = '\0'" (subscript_expression "pcVar1[0xf]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar1[0x10] = '\0';" (assignment_expression "pcVar1[0x10] = '\0'" (subscript_expression "pcVar1[0x10]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar1[0x11] = '\0';" (assignment_expression "pcVar1[0x11] = '\0'" (subscript_expression "pcVar1[0x11]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar1[0x12] = '\0';" (assignment_expression "pcVar1[0x12] = '\0'" (subscript_expression "pcVar1[0x12]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar1[0x13] = '\0';" (assignment_expression "pcVar1[0x13] = '\0'" (subscript_expression "pcVar1[0x13]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) }) (else_clause "else {\n          *(int *)(pcVar1 + 0xc) = iVar3;\n          if (iVar3 == 0) goto LAB_002d3a5c;\n          *(undefined4 *)(pTVar5 + 4) = 0;\n        }" else (compound_statement "{\n          *(int *)(pcVar1 + 0xc) = iVar3;\n          if (iVar3 == 0) goto LAB_002d3a5c;\n          *(undefined4 *)(pTVar5 + 4) = 0;\n        }" { (expression_statement "*(int *)(pcVar1 + 0xc) = iVar3;" (assignment_expression "*(int *)(pcVar1 + 0xc) = iVar3" (pointer_expression "*(int *)(pcVar1 + 0xc)" * (cast_expression "(int *)(pcVar1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar1 + 0xc)" ( (binary_expression "pcVar1 + 0xc" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar3 == 0) goto LAB_002d3a5c;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_002d3a5c;" goto statement_identifier ;)) (expression_statement "*(undefined4 *)(pTVar5 + 4) = 0;" (assignment_expression "*(undefined4 *)(pTVar5 + 4) = 0" (pointer_expression "*(undefined4 *)(pTVar5 + 4)" * (cast_expression "(undefined4 *)(pTVar5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pTVar5 + 4)" ( (binary_expression "pTVar5 + 4" identifier + number_literal) )))) = number_literal) ;) }))) (expression_statement "*(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;" (assignment_expression "*(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1" (pointer_expression "*(int *)(this_00 + 0x18)" * (cast_expression "(int *)(this_00 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this_00 + 0x18)" ( (binary_expression "this_00 + 0x18" identifier + number_literal) )))) = (binary_expression "*(int *)(this_00 + 0x18) + -1" (pointer_expression "*(int *)(this_00 + 0x18)" * (cast_expression "(int *)(this_00 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(this_00 + 0x18)" ( (binary_expression "this_00 + 0x18" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar3 = return_or_queue(this_00,pTVar5,false,apTStack_48);" (assignment_expression "iVar3 = return_or_queue(this_00,pTVar5,false,apTStack_48)" identifier = (call_expression "return_or_queue(this_00,pTVar5,false,apTStack_48)" identifier (argument_list "(this_00,pTVar5,false,apTStack_48)" ( identifier , identifier , false , identifier )))) ;) }) while (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) ;) (labeled_statement "LAB_002d398c:\n      iVar3 = *piVar7;" statement_identifier : (expression_statement "iVar3 = *piVar7;" (assignment_expression "iVar3 = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;)) (expression_statement "piVar8 = piVar8 + 1;" (assignment_expression "piVar8 = piVar8 + 1" identifier = (binary_expression "piVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar8 != piVar7 + iVar3 + 1)" ( (binary_expression "piVar8 != piVar7 + iVar3 + 1" identifier != (binary_expression "piVar7 + iVar3 + 1" (binary_expression "piVar7 + iVar3" identifier + identifier) + number_literal)) )) ;) }))) (return_statement "return apTStack_48[0];" return (subscript_expression "apTStack_48[0]" identifier [ number_literal ]) ;) (labeled_statement "LAB_002d3a94:\n  uVar6 = 0x53;" statement_identifier : (expression_statement "uVar6 = 0x53;" (assignment_expression "uVar6 = 0x53" identifier = number_literal) ;)) (labeled_statement "LAB_002d3a60:\n  uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                    (*(int *)(puVar9 + 0x1ee098) + 0x39bc,uVar6,*(int *)(puVar9 + 0x1ee098) + 0x3aa0\n                    );" statement_identifier : (expression_statement "uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                    (*(int *)(puVar9 + 0x1ee098) + 0x39bc,uVar6,*(int *)(puVar9 + 0x1ee098) + 0x3aa0\n                    );" (assignment_expression "uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                    (*(int *)(puVar9 + 0x1ee098) + 0x39bc,uVar6,*(int *)(puVar9 + 0x1ee098) + 0x3aa0\n                    )" identifier = (call_expression "(**(code **)(puVar9 + 0x1ee1ac))\n                    (*(int *)(puVar9 + 0x1ee098) + 0x39bc,uVar6,*(int *)(puVar9 + 0x1ee098) + 0x3aa0\n                    )" (parenthesized_expression "(**(code **)(puVar9 + 0x1ee1ac))" ( (pointer_expression "**(code **)(puVar9 + 0x1ee1ac)" * (pointer_expression "*(code **)(puVar9 + 0x1ee1ac)" * (cast_expression "(code **)(puVar9 + 0x1ee1ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0x1ee1ac)" ( (binary_expression "puVar9 + 0x1ee1ac" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar9 + 0x1ee098) + 0x39bc,uVar6,*(int *)(puVar9 + 0x1ee098) + 0x3aa0\n                    )" ( (binary_expression "*(int *)(puVar9 + 0x1ee098) + 0x39bc" (pointer_expression "*(int *)(puVar9 + 0x1ee098)" * (cast_expression "(int *)(puVar9 + 0x1ee098)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0x1ee098)" ( (binary_expression "puVar9 + 0x1ee098" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(puVar9 + 0x1ee098) + 0x3aa0" (pointer_expression "*(int *)(puVar9 + 0x1ee098)" * (cast_expression "(int *)(puVar9 + 0x1ee098)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0x1ee098)" ( (binary_expression "puVar9 + 0x1ee098" identifier + number_literal) )))) + number_literal) )))) ;)) (return_statement "return uVar6;" return identifier ;) })))
(translation_unit (function_definition TYPE (ms_call_modifier __thiscall) (ERROR IDENT : : IDENT : :) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * (pointer_declarator * IDENT))) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE 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 * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (if_statement if (parenthesized_expression ( (binary_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 *)) ) IDENT)) + LIT) )))) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (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 { (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;)) (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (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) )))) == LIT) )) (compound_statement { (expression_statement (assignment_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 *)) ) (parenthesized_expression ( (binary_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 + LIT) )))) = IDENT) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) }))) (goto_statement goto statement_identifier ;) })) }) (else_clause else (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) )) (argument_list ( 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 : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (call_expression IDENT (argument_list ( IDENT , IDENT ))) == LIT) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (cast_expression ( (type_descriptor TYPE) ) LIT)) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) && (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 (pointer_expression * IDENT) = IDENT) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (cast_expression ( (type_descriptor TYPE) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (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) )))) == LIT) )) (compound_statement { (expression_statement (assignment_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 *)) ) (parenthesized_expression ( (binary_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 + LIT) )))) = IDENT) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) })))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 : (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 * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;)) (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (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) )))) == LIT) )) (compound_statement { (expression_statement (assignment_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 *)) ) (parenthesized_expression ( (binary_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 + LIT) )))) = IDENT) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (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 (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) ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (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 = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression (binary_expression IDENT + IDENT) + LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) , (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence '))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_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 (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 * (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) )))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression 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 IDENT + LIT) )))) == IDENT) )) (goto_statement goto statement_identifier ;)) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) , (binary_expression IDENT != LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , BOOL , 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) ))))) ;) (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 *)) ) (parenthesized_expression ( (binary_expression 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 IDENT + LIT) )))) != IDENT) )) (break_statement break ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression (binary_expression IDENT + IDENT) + LIT)) )) (compound_statement { (return_statement return (subscript_expression IDENT [ LIT ]) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (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) )))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (do_statement do (compound_statement { (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 IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (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) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , BOOL , IDENT )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT == LIT) )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression (binary_expression IDENT + IDENT) + LIT)) )) ;) }))) (return_statement return (subscript_expression IDENT [ LIT ]) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = 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 ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;)) (return_statement return IDENT ;) })))
(function_definition "undefined4 __thiscall\ngold::Workqueue::return_or_queue(Workqueue *this,Task *param_1,bool param_2,Task **param_3)\n\n{\n  char *pcVar1;\n  int iVar2;\n  int iVar3;\n  Workqueue *this_00;\n  int iVar4;\n  Task *pTVar5;\n  undefined4 uVar6;\n  undefined3 in_register_00000018;\n  int *piVar7;\n  int *piVar8;\n  undefined *puVar9;\n  Task *apTStack_48 [2];\n  Workqueue *pWStack_40;\n  \n  if (*(code **)(*(int *)param_1 + 8) == (code *)PTR_is_runnable_004c4b34) {\n    pcVar1 = *(char **)(param_1 + 0x28);\n    if (*pcVar1 != '\0') {\n      if (*(int *)(pcVar1 + 4) < 1) goto LAB_002d3724;\nLAB_002d36ac:\n      if (*(int *)(param_1 + 4) == 0) {\n        if (*(int *)(pcVar1 + 0xc) == 0) {\n          *(Task **)(pcVar1 + 0xc) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\nLAB_002d36dc:\n          *(int *)(this + 0x18) = *(int *)(this + 0x18) + 1;\n          return 0;\n        }\n        if (*(int *)(*(int *)(pcVar1 + 0x10) + 4) == 0) {\n          *(Task **)(*(int *)(pcVar1 + 0x10) + 4) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\n          goto LAB_002d36dc;\n        }\n        goto LAB_002d386c;\n      }\n      goto LAB_002d3834;\n    }\n  }\n  else {\n    pcVar1 = (char *)(**(code **)(*(int *)param_1 + 8))(param_1);\n    if (pcVar1 != (char *)0x0) goto LAB_002d36ac;\nLAB_002d3724:\n    if (*param_3 == (Task *)0x0) {\n      if (((CONCAT31(in_register_00000018,param_2) == 0) || (param_1[0x20] != (Task)0x0)) ||\n         ((*(int *)(this + 4) == 0 && (*(int *)(this + 0xc) == 0)))) {\n        *param_3 = param_1;\n        return 1;\n      }\n      iVar3 = *(int *)(param_1 + 4);\n    }\n    else {\n      iVar3 = *(int *)(param_1 + 4);\n      if (param_1[0x20] != (Task)0x0) {\n        if (iVar3 == 0) {\n          if (*(int *)(this + 4) == 0) {\n            *(Task **)(this + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          if (*(int *)(*(int *)(this + 8) + 4) == 0) {\n            *(Task **)(*(int *)(this + 8) + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }\n        goto LAB_002d3834;\n      }\n    }\n    if (iVar3 == 0) {\n      if (*(int *)(this + 0xc) == 0) {\n        *(Task **)(this + 0xc) = param_1;\n        *(Task **)(this + 0x10) = param_1;\nLAB_002d3768:\n        (**(code **)(**(int **)(this + 0x20) + 0xc))(*(int **)(this + 0x20));\n        return 0;\n      }\n      if (*(int *)(*(int *)(this + 0x10) + 4) == 0) {\n        *(Task **)(*(int *)(this + 0x10) + 4) = param_1;\n        *(Task **)(this + 0x10) = param_1;\n        goto LAB_002d3768;\n      }\n      goto LAB_002d386c;\n    }\nLAB_002d3834:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x39bc,0x29,\n               PTR_s_in_a_linker_script_004c191c + 0x3aac);\n  }\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x7f8,0xab,\n             PTR_s_in_a_linker_script_004c191c + 0x3ad4);\nLAB_002d386c:\n  iVar4 = 0x5a;\n  piVar7 = (int *)(PTR_s_in_a_linker_script_004c191c + 0x3ab8);\n  this_00 = (Workqueue *)(PTR_s__s_004c1a50 + 0x970);\n  puVar9 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)();\n  iVar3 = *piVar7;\n  piVar8 = piVar7 + 1;\n  apTStack_48[0] = (Task *)0x0;\n  if (piVar8 == piVar7 + iVar3 + 1) {\n    apTStack_48[0] = (Task *)0x0;\n  }\n  else {\n    pWStack_40 = this;\n    do {\n      while (pcVar1 = (char *)*piVar8, *pcVar1 != '\0') {\n        iVar2 = *(int *)(pcVar1 + 4) + -1;\n        if (*(int *)(pcVar1 + 4) < 1) {\n          uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                            (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0xa1,\n                             *(int *)(puVar9 + 0x1ee098) + 0x3a6c);\n          return uVar6;\n        }\n        pcVar1[8] = '\0';\n        pcVar1[9] = '\0';\n        pcVar1[10] = '\0';\n        pcVar1[0xb] = '\0';\n        *(int *)(pcVar1 + 4) = iVar2;\n        if ((iVar2 == 0) && (pTVar5 = *(Task **)(pcVar1 + 0xc), pTVar5 != (Task *)0x0)) {\n          iVar3 = *(int *)(pTVar5 + 4);\n          if (*(Task **)(pcVar1 + 0x10) == pTVar5) goto LAB_002d3a40;\n          while (*(int *)(pcVar1 + 0xc) = iVar3, iVar3 != 0) {\n            *(undefined4 *)(pTVar5 + 4) = 0;\n            while( true ) {\n              *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n              return_or_queue(this_00,pTVar5,true,apTStack_48);\n              pTVar5 = *(Task **)(pcVar1 + 0xc);\n              if (pTVar5 == (Task *)0x0) goto LAB_002d398c;\n              iVar3 = *(int *)(pTVar5 + 4);\n              if (*(Task **)(pcVar1 + 0x10) != pTVar5) break;\nLAB_002d3a40:\n              if (iVar3 != 0) goto LAB_002d3a94;\n              pcVar1[0xc] = '\0';\n              pcVar1[0xd] = '\0';\n              pcVar1[0xe] = '\0';\n              pcVar1[0xf] = '\0';\n              pcVar1[0x10] = '\0';\n              pcVar1[0x11] = '\0';\n              pcVar1[0x12] = '\0';\n              pcVar1[0x13] = '\0';\n            }\n          }\nLAB_002d3a5c:\n          uVar6 = 0x5a;\n          goto LAB_002d3a60;\n        }\n        piVar8 = piVar8 + 1;\n        if (piVar8 == piVar7 + iVar3 + 1) {\n          return apTStack_48[0];\n        }\n      }\n      if (iVar4 != *(int *)(pcVar1 + 8)) {\n        uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                          (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0x84,\n                           *(int *)(puVar9 + 0x1ee098) + 0x3a5c);\n        return uVar6;\n      }\n      pcVar1[8] = '\0';\n      pcVar1[9] = '\0';\n      pcVar1[10] = '\0';\n      pcVar1[0xb] = '\0';\n      do {\n        pTVar5 = *(Task **)(pcVar1 + 0xc);\n        if (pTVar5 == (Task *)0x0) break;\n        iVar3 = *(int *)(pTVar5 + 4);\n        if (pTVar5 == *(Task **)(pcVar1 + 0x10)) {\n          if (iVar3 != 0) goto LAB_002d3a94;\n          pcVar1[0xc] = '\0';\n          pcVar1[0xd] = '\0';\n          pcVar1[0xe] = '\0';\n          pcVar1[0xf] = '\0';\n          pcVar1[0x10] = '\0';\n          pcVar1[0x11] = '\0';\n          pcVar1[0x12] = '\0';\n          pcVar1[0x13] = '\0';\n        }\n        else {\n          *(int *)(pcVar1 + 0xc) = iVar3;\n          if (iVar3 == 0) goto LAB_002d3a5c;\n          *(undefined4 *)(pTVar5 + 4) = 0;\n        }\n        *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n        iVar3 = return_or_queue(this_00,pTVar5,false,apTStack_48);\n      } while (iVar3 == 0);\nLAB_002d398c:\n      iVar3 = *piVar7;\n      piVar8 = piVar8 + 1;\n    } while (piVar8 != piVar7 + iVar3 + 1);\n  }\n  return apTStack_48[0];\nLAB_002d3a94:\n  uVar6 = 0x53;\nLAB_002d3a60:\n  uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                    (*(int *)(puVar9 + 0x1ee098) + 0x39bc,uVar6,*(int *)(puVar9 + 0x1ee098) + 0x3aa0\n                    );\n  return uVar6;\n}" (type_identifier "undefined4") (ms_call_modifier "__thiscall" (__thiscall "__thiscall")) (ERROR "gold::Workqueue::" (identifier "gold") (: ":") (: ":") (identifier "Workqueue") (: ":") (: ":")) (function_declarator "return_or_queue(Workqueue *this,Task *param_1,bool param_2,Task **param_3)" (identifier "return_or_queue") (parameter_list "(Workqueue *this,Task *param_1,bool param_2,Task **param_3)" (( "(") (parameter_declaration "Workqueue *this" (type_identifier "Workqueue") (pointer_declarator "*this" (* "*") (identifier "this"))) (, ",") (parameter_declaration "Task *param_1" (type_identifier "Task") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "bool param_2" (primitive_type "bool") (identifier "param_2")) (, ",") (parameter_declaration "Task **param_3" (type_identifier "Task") (pointer_declarator "**param_3" (* "*") (pointer_declarator "*param_3" (* "*") (identifier "param_3")))) () ")"))) (compound_statement "{\n  char *pcVar1;\n  int iVar2;\n  int iVar3;\n  Workqueue *this_00;\n  int iVar4;\n  Task *pTVar5;\n  undefined4 uVar6;\n  undefined3 in_register_00000018;\n  int *piVar7;\n  int *piVar8;\n  undefined *puVar9;\n  Task *apTStack_48 [2];\n  Workqueue *pWStack_40;\n  \n  if (*(code **)(*(int *)param_1 + 8) == (code *)PTR_is_runnable_004c4b34) {\n    pcVar1 = *(char **)(param_1 + 0x28);\n    if (*pcVar1 != '\0') {\n      if (*(int *)(pcVar1 + 4) < 1) goto LAB_002d3724;\nLAB_002d36ac:\n      if (*(int *)(param_1 + 4) == 0) {\n        if (*(int *)(pcVar1 + 0xc) == 0) {\n          *(Task **)(pcVar1 + 0xc) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\nLAB_002d36dc:\n          *(int *)(this + 0x18) = *(int *)(this + 0x18) + 1;\n          return 0;\n        }\n        if (*(int *)(*(int *)(pcVar1 + 0x10) + 4) == 0) {\n          *(Task **)(*(int *)(pcVar1 + 0x10) + 4) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\n          goto LAB_002d36dc;\n        }\n        goto LAB_002d386c;\n      }\n      goto LAB_002d3834;\n    }\n  }\n  else {\n    pcVar1 = (char *)(**(code **)(*(int *)param_1 + 8))(param_1);\n    if (pcVar1 != (char *)0x0) goto LAB_002d36ac;\nLAB_002d3724:\n    if (*param_3 == (Task *)0x0) {\n      if (((CONCAT31(in_register_00000018,param_2) == 0) || (param_1[0x20] != (Task)0x0)) ||\n         ((*(int *)(this + 4) == 0 && (*(int *)(this + 0xc) == 0)))) {\n        *param_3 = param_1;\n        return 1;\n      }\n      iVar3 = *(int *)(param_1 + 4);\n    }\n    else {\n      iVar3 = *(int *)(param_1 + 4);\n      if (param_1[0x20] != (Task)0x0) {\n        if (iVar3 == 0) {\n          if (*(int *)(this + 4) == 0) {\n            *(Task **)(this + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          if (*(int *)(*(int *)(this + 8) + 4) == 0) {\n            *(Task **)(*(int *)(this + 8) + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }\n        goto LAB_002d3834;\n      }\n    }\n    if (iVar3 == 0) {\n      if (*(int *)(this + 0xc) == 0) {\n        *(Task **)(this + 0xc) = param_1;\n        *(Task **)(this + 0x10) = param_1;\nLAB_002d3768:\n        (**(code **)(**(int **)(this + 0x20) + 0xc))(*(int **)(this + 0x20));\n        return 0;\n      }\n      if (*(int *)(*(int *)(this + 0x10) + 4) == 0) {\n        *(Task **)(*(int *)(this + 0x10) + 4) = param_1;\n        *(Task **)(this + 0x10) = param_1;\n        goto LAB_002d3768;\n      }\n      goto LAB_002d386c;\n    }\nLAB_002d3834:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x39bc,0x29,\n               PTR_s_in_a_linker_script_004c191c + 0x3aac);\n  }\n  (*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x7f8,0xab,\n             PTR_s_in_a_linker_script_004c191c + 0x3ad4);\nLAB_002d386c:\n  iVar4 = 0x5a;\n  piVar7 = (int *)(PTR_s_in_a_linker_script_004c191c + 0x3ab8);\n  this_00 = (Workqueue *)(PTR_s__s_004c1a50 + 0x970);\n  puVar9 = PTR_do_gold_unreachable_004c1a30;\n  (*(code *)PTR_do_gold_unreachable_004c1a30)();\n  iVar3 = *piVar7;\n  piVar8 = piVar7 + 1;\n  apTStack_48[0] = (Task *)0x0;\n  if (piVar8 == piVar7 + iVar3 + 1) {\n    apTStack_48[0] = (Task *)0x0;\n  }\n  else {\n    pWStack_40 = this;\n    do {\n      while (pcVar1 = (char *)*piVar8, *pcVar1 != '\0') {\n        iVar2 = *(int *)(pcVar1 + 4) + -1;\n        if (*(int *)(pcVar1 + 4) < 1) {\n          uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                            (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0xa1,\n                             *(int *)(puVar9 + 0x1ee098) + 0x3a6c);\n          return uVar6;\n        }\n        pcVar1[8] = '\0';\n        pcVar1[9] = '\0';\n        pcVar1[10] = '\0';\n        pcVar1[0xb] = '\0';\n        *(int *)(pcVar1 + 4) = iVar2;\n        if ((iVar2 == 0) && (pTVar5 = *(Task **)(pcVar1 + 0xc), pTVar5 != (Task *)0x0)) {\n          iVar3 = *(int *)(pTVar5 + 4);\n          if (*(Task **)(pcVar1 + 0x10) == pTVar5) goto LAB_002d3a40;\n          while (*(int *)(pcVar1 + 0xc) = iVar3, iVar3 != 0) {\n            *(undefined4 *)(pTVar5 + 4) = 0;\n            while( true ) {\n              *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n              return_or_queue(this_00,pTVar5,true,apTStack_48);\n              pTVar5 = *(Task **)(pcVar1 + 0xc);\n              if (pTVar5 == (Task *)0x0) goto LAB_002d398c;\n              iVar3 = *(int *)(pTVar5 + 4);\n              if (*(Task **)(pcVar1 + 0x10) != pTVar5) break;\nLAB_002d3a40:\n              if (iVar3 != 0) goto LAB_002d3a94;\n              pcVar1[0xc] = '\0';\n              pcVar1[0xd] = '\0';\n              pcVar1[0xe] = '\0';\n              pcVar1[0xf] = '\0';\n              pcVar1[0x10] = '\0';\n              pcVar1[0x11] = '\0';\n              pcVar1[0x12] = '\0';\n              pcVar1[0x13] = '\0';\n            }\n          }\nLAB_002d3a5c:\n          uVar6 = 0x5a;\n          goto LAB_002d3a60;\n        }\n        piVar8 = piVar8 + 1;\n        if (piVar8 == piVar7 + iVar3 + 1) {\n          return apTStack_48[0];\n        }\n      }\n      if (iVar4 != *(int *)(pcVar1 + 8)) {\n        uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                          (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0x84,\n                           *(int *)(puVar9 + 0x1ee098) + 0x3a5c);\n        return uVar6;\n      }\n      pcVar1[8] = '\0';\n      pcVar1[9] = '\0';\n      pcVar1[10] = '\0';\n      pcVar1[0xb] = '\0';\n      do {\n        pTVar5 = *(Task **)(pcVar1 + 0xc);\n        if (pTVar5 == (Task *)0x0) break;\n        iVar3 = *(int *)(pTVar5 + 4);\n        if (pTVar5 == *(Task **)(pcVar1 + 0x10)) {\n          if (iVar3 != 0) goto LAB_002d3a94;\n          pcVar1[0xc] = '\0';\n          pcVar1[0xd] = '\0';\n          pcVar1[0xe] = '\0';\n          pcVar1[0xf] = '\0';\n          pcVar1[0x10] = '\0';\n          pcVar1[0x11] = '\0';\n          pcVar1[0x12] = '\0';\n          pcVar1[0x13] = '\0';\n        }\n        else {\n          *(int *)(pcVar1 + 0xc) = iVar3;\n          if (iVar3 == 0) goto LAB_002d3a5c;\n          *(undefined4 *)(pTVar5 + 4) = 0;\n        }\n        *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n        iVar3 = return_or_queue(this_00,pTVar5,false,apTStack_48);\n      } while (iVar3 == 0);\nLAB_002d398c:\n      iVar3 = *piVar7;\n      piVar8 = piVar8 + 1;\n    } while (piVar8 != piVar7 + iVar3 + 1);\n  }\n  return apTStack_48[0];\nLAB_002d3a94:\n  uVar6 = 0x53;\nLAB_002d3a60:\n  uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                    (*(int *)(puVar9 + 0x1ee098) + 0x39bc,uVar6,*(int *)(puVar9 + 0x1ee098) + 0x3aa0\n                    );\n  return uVar6;\n}" ({ "{") (declaration "char *pcVar1;" (primitive_type "char") (pointer_declarator "*pcVar1" (* "*") (identifier "pcVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "Workqueue *this_00;" (type_identifier "Workqueue") (pointer_declarator "*this_00" (* "*") (identifier "this_00")) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "Task *pTVar5;" (type_identifier "Task") (pointer_declarator "*pTVar5" (* "*") (identifier "pTVar5")) (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "undefined3 in_register_00000018;" (type_identifier "undefined3") (identifier "in_register_00000018") (; ";")) (declaration "int *piVar7;" (primitive_type "int") (pointer_declarator "*piVar7" (* "*") (identifier "piVar7")) (; ";")) (declaration "int *piVar8;" (primitive_type "int") (pointer_declarator "*piVar8" (* "*") (identifier "piVar8")) (; ";")) (declaration "undefined *puVar9;" (type_identifier "undefined") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "Task *apTStack_48 [2];" (type_identifier "Task") (pointer_declarator "*apTStack_48 [2]" (* "*") (array_declarator "apTStack_48 [2]" (identifier "apTStack_48") ([ "[") (number_literal "2") (] "]"))) (; ";")) (declaration "Workqueue *pWStack_40;" (type_identifier "Workqueue") (pointer_declarator "*pWStack_40" (* "*") (identifier "pWStack_40")) (; ";")) (if_statement "if (*(code **)(*(int *)param_1 + 8) == (code *)PTR_is_runnable_004c4b34) {\n    pcVar1 = *(char **)(param_1 + 0x28);\n    if (*pcVar1 != '\0') {\n      if (*(int *)(pcVar1 + 4) < 1) goto LAB_002d3724;\nLAB_002d36ac:\n      if (*(int *)(param_1 + 4) == 0) {\n        if (*(int *)(pcVar1 + 0xc) == 0) {\n          *(Task **)(pcVar1 + 0xc) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\nLAB_002d36dc:\n          *(int *)(this + 0x18) = *(int *)(this + 0x18) + 1;\n          return 0;\n        }\n        if (*(int *)(*(int *)(pcVar1 + 0x10) + 4) == 0) {\n          *(Task **)(*(int *)(pcVar1 + 0x10) + 4) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\n          goto LAB_002d36dc;\n        }\n        goto LAB_002d386c;\n      }\n      goto LAB_002d3834;\n    }\n  }\n  else {\n    pcVar1 = (char *)(**(code **)(*(int *)param_1 + 8))(param_1);\n    if (pcVar1 != (char *)0x0) goto LAB_002d36ac;\nLAB_002d3724:\n    if (*param_3 == (Task *)0x0) {\n      if (((CONCAT31(in_register_00000018,param_2) == 0) || (param_1[0x20] != (Task)0x0)) ||\n         ((*(int *)(this + 4) == 0 && (*(int *)(this + 0xc) == 0)))) {\n        *param_3 = param_1;\n        return 1;\n      }\n      iVar3 = *(int *)(param_1 + 4);\n    }\n    else {\n      iVar3 = *(int *)(param_1 + 4);\n      if (param_1[0x20] != (Task)0x0) {\n        if (iVar3 == 0) {\n          if (*(int *)(this + 4) == 0) {\n            *(Task **)(this + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          if (*(int *)(*(int *)(this + 8) + 4) == 0) {\n            *(Task **)(*(int *)(this + 8) + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }\n        goto LAB_002d3834;\n      }\n    }\n    if (iVar3 == 0) {\n      if (*(int *)(this + 0xc) == 0) {\n        *(Task **)(this + 0xc) = param_1;\n        *(Task **)(this + 0x10) = param_1;\nLAB_002d3768:\n        (**(code **)(**(int **)(this + 0x20) + 0xc))(*(int **)(this + 0x20));\n        return 0;\n      }\n      if (*(int *)(*(int *)(this + 0x10) + 4) == 0) {\n        *(Task **)(*(int *)(this + 0x10) + 4) = param_1;\n        *(Task **)(this + 0x10) = param_1;\n        goto LAB_002d3768;\n      }\n      goto LAB_002d386c;\n    }\nLAB_002d3834:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x39bc,0x29,\n               PTR_s_in_a_linker_script_004c191c + 0x3aac);\n  }" (if "if") (parenthesized_expression "(*(code **)(*(int *)param_1 + 8) == (code *)PTR_is_runnable_004c4b34)" (( "(") (binary_expression "*(code **)(*(int *)param_1 + 8) == (code *)PTR_is_runnable_004c4b34" (pointer_expression "*(code **)(*(int *)param_1 + 8)" (* "*") (cast_expression "(code **)(*(int *)param_1 + 8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)param_1 + 8)" (( "(") (binary_expression "*(int *)param_1 + 8" (pointer_expression "*(int *)param_1" (* "*") (cast_expression "(int *)param_1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1"))) (+ "+") (number_literal "8")) () ")")))) (== "==") (cast_expression "(code *)PTR_is_runnable_004c4b34" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_is_runnable_004c4b34"))) () ")")) (compound_statement "{\n    pcVar1 = *(char **)(param_1 + 0x28);\n    if (*pcVar1 != '\0') {\n      if (*(int *)(pcVar1 + 4) < 1) goto LAB_002d3724;\nLAB_002d36ac:\n      if (*(int *)(param_1 + 4) == 0) {\n        if (*(int *)(pcVar1 + 0xc) == 0) {\n          *(Task **)(pcVar1 + 0xc) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\nLAB_002d36dc:\n          *(int *)(this + 0x18) = *(int *)(this + 0x18) + 1;\n          return 0;\n        }\n        if (*(int *)(*(int *)(pcVar1 + 0x10) + 4) == 0) {\n          *(Task **)(*(int *)(pcVar1 + 0x10) + 4) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\n          goto LAB_002d36dc;\n        }\n        goto LAB_002d386c;\n      }\n      goto LAB_002d3834;\n    }\n  }" ({ "{") (expression_statement "pcVar1 = *(char **)(param_1 + 0x28);" (assignment_expression "pcVar1 = *(char **)(param_1 + 0x28)" (identifier "pcVar1") (= "=") (pointer_expression "*(char **)(param_1 + 0x28)" (* "*") (cast_expression "(char **)(param_1 + 0x28)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (if_statement "if (*pcVar1 != '\0') {\n      if (*(int *)(pcVar1 + 4) < 1) goto LAB_002d3724;\nLAB_002d36ac:\n      if (*(int *)(param_1 + 4) == 0) {\n        if (*(int *)(pcVar1 + 0xc) == 0) {\n          *(Task **)(pcVar1 + 0xc) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\nLAB_002d36dc:\n          *(int *)(this + 0x18) = *(int *)(this + 0x18) + 1;\n          return 0;\n        }\n        if (*(int *)(*(int *)(pcVar1 + 0x10) + 4) == 0) {\n          *(Task **)(*(int *)(pcVar1 + 0x10) + 4) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\n          goto LAB_002d36dc;\n        }\n        goto LAB_002d386c;\n      }\n      goto LAB_002d3834;\n    }" (if "if") (parenthesized_expression "(*pcVar1 != '\0')" (( "(") (binary_expression "*pcVar1 != '\0'" (pointer_expression "*pcVar1" (* "*") (identifier "pcVar1")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      if (*(int *)(pcVar1 + 4) < 1) goto LAB_002d3724;\nLAB_002d36ac:\n      if (*(int *)(param_1 + 4) == 0) {\n        if (*(int *)(pcVar1 + 0xc) == 0) {\n          *(Task **)(pcVar1 + 0xc) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\nLAB_002d36dc:\n          *(int *)(this + 0x18) = *(int *)(this + 0x18) + 1;\n          return 0;\n        }\n        if (*(int *)(*(int *)(pcVar1 + 0x10) + 4) == 0) {\n          *(Task **)(*(int *)(pcVar1 + 0x10) + 4) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\n          goto LAB_002d36dc;\n        }\n        goto LAB_002d386c;\n      }\n      goto LAB_002d3834;\n    }" ({ "{") (if_statement "if (*(int *)(pcVar1 + 4) < 1) goto LAB_002d3724;" (if "if") (parenthesized_expression "(*(int *)(pcVar1 + 4) < 1)" (( "(") (binary_expression "*(int *)(pcVar1 + 4) < 1" (pointer_expression "*(int *)(pcVar1 + 4)" (* "*") (cast_expression "(int *)(pcVar1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar1 + 4)" (( "(") (binary_expression "pcVar1 + 4" (identifier "pcVar1") (+ "+") (number_literal "4")) () ")")))) (< "<") (number_literal "1")) () ")")) (goto_statement "goto LAB_002d3724;" (goto "goto") (statement_identifier "LAB_002d3724") (; ";"))) (labeled_statement "LAB_002d36ac:\n      if (*(int *)(param_1 + 4) == 0) {\n        if (*(int *)(pcVar1 + 0xc) == 0) {\n          *(Task **)(pcVar1 + 0xc) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\nLAB_002d36dc:\n          *(int *)(this + 0x18) = *(int *)(this + 0x18) + 1;\n          return 0;\n        }\n        if (*(int *)(*(int *)(pcVar1 + 0x10) + 4) == 0) {\n          *(Task **)(*(int *)(pcVar1 + 0x10) + 4) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\n          goto LAB_002d36dc;\n        }\n        goto LAB_002d386c;\n      }" (statement_identifier "LAB_002d36ac") (: ":") (if_statement "if (*(int *)(param_1 + 4) == 0) {\n        if (*(int *)(pcVar1 + 0xc) == 0) {\n          *(Task **)(pcVar1 + 0xc) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\nLAB_002d36dc:\n          *(int *)(this + 0x18) = *(int *)(this + 0x18) + 1;\n          return 0;\n        }\n        if (*(int *)(*(int *)(pcVar1 + 0x10) + 4) == 0) {\n          *(Task **)(*(int *)(pcVar1 + 0x10) + 4) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\n          goto LAB_002d36dc;\n        }\n        goto LAB_002d386c;\n      }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 4) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 4) == 0" (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if (*(int *)(pcVar1 + 0xc) == 0) {\n          *(Task **)(pcVar1 + 0xc) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\nLAB_002d36dc:\n          *(int *)(this + 0x18) = *(int *)(this + 0x18) + 1;\n          return 0;\n        }\n        if (*(int *)(*(int *)(pcVar1 + 0x10) + 4) == 0) {\n          *(Task **)(*(int *)(pcVar1 + 0x10) + 4) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\n          goto LAB_002d36dc;\n        }\n        goto LAB_002d386c;\n      }" ({ "{") (if_statement "if (*(int *)(pcVar1 + 0xc) == 0) {\n          *(Task **)(pcVar1 + 0xc) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\nLAB_002d36dc:\n          *(int *)(this + 0x18) = *(int *)(this + 0x18) + 1;\n          return 0;\n        }" (if "if") (parenthesized_expression "(*(int *)(pcVar1 + 0xc) == 0)" (( "(") (binary_expression "*(int *)(pcVar1 + 0xc) == 0" (pointer_expression "*(int *)(pcVar1 + 0xc)" (* "*") (cast_expression "(int *)(pcVar1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar1 + 0xc)" (( "(") (binary_expression "pcVar1 + 0xc" (identifier "pcVar1") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          *(Task **)(pcVar1 + 0xc) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\nLAB_002d36dc:\n          *(int *)(this + 0x18) = *(int *)(this + 0x18) + 1;\n          return 0;\n        }" ({ "{") (expression_statement "*(Task **)(pcVar1 + 0xc) = param_1;" (assignment_expression "*(Task **)(pcVar1 + 0xc) = param_1" (pointer_expression "*(Task **)(pcVar1 + 0xc)" (* "*") (cast_expression "(Task **)(pcVar1 + 0xc)" (( "(") (type_descriptor "Task **" (type_identifier "Task") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar1 + 0xc)" (( "(") (binary_expression "pcVar1 + 0xc" (identifier "pcVar1") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (expression_statement "*(Task **)(pcVar1 + 0x10) = param_1;" (assignment_expression "*(Task **)(pcVar1 + 0x10) = param_1" (pointer_expression "*(Task **)(pcVar1 + 0x10)" (* "*") (cast_expression "(Task **)(pcVar1 + 0x10)" (( "(") (type_descriptor "Task **" (type_identifier "Task") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar1 + 0x10)" (( "(") (binary_expression "pcVar1 + 0x10" (identifier "pcVar1") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (labeled_statement "LAB_002d36dc:\n          *(int *)(this + 0x18) = *(int *)(this + 0x18) + 1;" (statement_identifier "LAB_002d36dc") (: ":") (expression_statement "*(int *)(this + 0x18) = *(int *)(this + 0x18) + 1;" (assignment_expression "*(int *)(this + 0x18) = *(int *)(this + 0x18) + 1" (pointer_expression "*(int *)(this + 0x18)" (* "*") (cast_expression "(int *)(this + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x18)" (( "(") (binary_expression "this + 0x18" (identifier "this") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (binary_expression "*(int *)(this + 0x18) + 1" (pointer_expression "*(int *)(this + 0x18)" (* "*") (cast_expression "(int *)(this + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x18)" (( "(") (binary_expression "this + 0x18" (identifier "this") (+ "+") (number_literal "0x18")) () ")")))) (+ "+") (number_literal "1"))) (; ";"))) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (*(int *)(*(int *)(pcVar1 + 0x10) + 4) == 0) {\n          *(Task **)(*(int *)(pcVar1 + 0x10) + 4) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\n          goto LAB_002d36dc;\n        }" (if "if") (parenthesized_expression "(*(int *)(*(int *)(pcVar1 + 0x10) + 4) == 0)" (( "(") (binary_expression "*(int *)(*(int *)(pcVar1 + 0x10) + 4) == 0" (pointer_expression "*(int *)(*(int *)(pcVar1 + 0x10) + 4)" (* "*") (cast_expression "(int *)(*(int *)(pcVar1 + 0x10) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar1 + 0x10) + 4)" (( "(") (binary_expression "*(int *)(pcVar1 + 0x10) + 4" (pointer_expression "*(int *)(pcVar1 + 0x10)" (* "*") (cast_expression "(int *)(pcVar1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar1 + 0x10)" (( "(") (binary_expression "pcVar1 + 0x10" (identifier "pcVar1") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          *(Task **)(*(int *)(pcVar1 + 0x10) + 4) = param_1;\n          *(Task **)(pcVar1 + 0x10) = param_1;\n          goto LAB_002d36dc;\n        }" ({ "{") (expression_statement "*(Task **)(*(int *)(pcVar1 + 0x10) + 4) = param_1;" (assignment_expression "*(Task **)(*(int *)(pcVar1 + 0x10) + 4) = param_1" (pointer_expression "*(Task **)(*(int *)(pcVar1 + 0x10) + 4)" (* "*") (cast_expression "(Task **)(*(int *)(pcVar1 + 0x10) + 4)" (( "(") (type_descriptor "Task **" (type_identifier "Task") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(pcVar1 + 0x10) + 4)" (( "(") (binary_expression "*(int *)(pcVar1 + 0x10) + 4" (pointer_expression "*(int *)(pcVar1 + 0x10)" (* "*") (cast_expression "(int *)(pcVar1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar1 + 0x10)" (( "(") (binary_expression "pcVar1 + 0x10" (identifier "pcVar1") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (expression_statement "*(Task **)(pcVar1 + 0x10) = param_1;" (assignment_expression "*(Task **)(pcVar1 + 0x10) = param_1" (pointer_expression "*(Task **)(pcVar1 + 0x10)" (* "*") (cast_expression "(Task **)(pcVar1 + 0x10)" (( "(") (type_descriptor "Task **" (type_identifier "Task") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar1 + 0x10)" (( "(") (binary_expression "pcVar1 + 0x10" (identifier "pcVar1") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (goto_statement "goto LAB_002d36dc;" (goto "goto") (statement_identifier "LAB_002d36dc") (; ";")) (} "}"))) (goto_statement "goto LAB_002d386c;" (goto "goto") (statement_identifier "LAB_002d386c") (; ";")) (} "}")))) (goto_statement "goto LAB_002d3834;" (goto "goto") (statement_identifier "LAB_002d3834") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    pcVar1 = (char *)(**(code **)(*(int *)param_1 + 8))(param_1);\n    if (pcVar1 != (char *)0x0) goto LAB_002d36ac;\nLAB_002d3724:\n    if (*param_3 == (Task *)0x0) {\n      if (((CONCAT31(in_register_00000018,param_2) == 0) || (param_1[0x20] != (Task)0x0)) ||\n         ((*(int *)(this + 4) == 0 && (*(int *)(this + 0xc) == 0)))) {\n        *param_3 = param_1;\n        return 1;\n      }\n      iVar3 = *(int *)(param_1 + 4);\n    }\n    else {\n      iVar3 = *(int *)(param_1 + 4);\n      if (param_1[0x20] != (Task)0x0) {\n        if (iVar3 == 0) {\n          if (*(int *)(this + 4) == 0) {\n            *(Task **)(this + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          if (*(int *)(*(int *)(this + 8) + 4) == 0) {\n            *(Task **)(*(int *)(this + 8) + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }\n        goto LAB_002d3834;\n      }\n    }\n    if (iVar3 == 0) {\n      if (*(int *)(this + 0xc) == 0) {\n        *(Task **)(this + 0xc) = param_1;\n        *(Task **)(this + 0x10) = param_1;\nLAB_002d3768:\n        (**(code **)(**(int **)(this + 0x20) + 0xc))(*(int **)(this + 0x20));\n        return 0;\n      }\n      if (*(int *)(*(int *)(this + 0x10) + 4) == 0) {\n        *(Task **)(*(int *)(this + 0x10) + 4) = param_1;\n        *(Task **)(this + 0x10) = param_1;\n        goto LAB_002d3768;\n      }\n      goto LAB_002d386c;\n    }\nLAB_002d3834:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x39bc,0x29,\n               PTR_s_in_a_linker_script_004c191c + 0x3aac);\n  }" (else "else") (compound_statement "{\n    pcVar1 = (char *)(**(code **)(*(int *)param_1 + 8))(param_1);\n    if (pcVar1 != (char *)0x0) goto LAB_002d36ac;\nLAB_002d3724:\n    if (*param_3 == (Task *)0x0) {\n      if (((CONCAT31(in_register_00000018,param_2) == 0) || (param_1[0x20] != (Task)0x0)) ||\n         ((*(int *)(this + 4) == 0 && (*(int *)(this + 0xc) == 0)))) {\n        *param_3 = param_1;\n        return 1;\n      }\n      iVar3 = *(int *)(param_1 + 4);\n    }\n    else {\n      iVar3 = *(int *)(param_1 + 4);\n      if (param_1[0x20] != (Task)0x0) {\n        if (iVar3 == 0) {\n          if (*(int *)(this + 4) == 0) {\n            *(Task **)(this + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          if (*(int *)(*(int *)(this + 8) + 4) == 0) {\n            *(Task **)(*(int *)(this + 8) + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }\n        goto LAB_002d3834;\n      }\n    }\n    if (iVar3 == 0) {\n      if (*(int *)(this + 0xc) == 0) {\n        *(Task **)(this + 0xc) = param_1;\n        *(Task **)(this + 0x10) = param_1;\nLAB_002d3768:\n        (**(code **)(**(int **)(this + 0x20) + 0xc))(*(int **)(this + 0x20));\n        return 0;\n      }\n      if (*(int *)(*(int *)(this + 0x10) + 4) == 0) {\n        *(Task **)(*(int *)(this + 0x10) + 4) = param_1;\n        *(Task **)(this + 0x10) = param_1;\n        goto LAB_002d3768;\n      }\n      goto LAB_002d386c;\n    }\nLAB_002d3834:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x39bc,0x29,\n               PTR_s_in_a_linker_script_004c191c + 0x3aac);\n  }" ({ "{") (expression_statement "pcVar1 = (char *)(**(code **)(*(int *)param_1 + 8))(param_1);" (assignment_expression "pcVar1 = (char *)(**(code **)(*(int *)param_1 + 8))(param_1)" (identifier "pcVar1") (= "=") (cast_expression "(char *)(**(code **)(*(int *)param_1 + 8))(param_1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(*(int *)param_1 + 8))(param_1)" (parenthesized_expression "(**(code **)(*(int *)param_1 + 8))" (( "(") (pointer_expression "**(code **)(*(int *)param_1 + 8)" (* "*") (pointer_expression "*(code **)(*(int *)param_1 + 8)" (* "*") (cast_expression "(code **)(*(int *)param_1 + 8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)param_1 + 8)" (( "(") (binary_expression "*(int *)param_1 + 8" (pointer_expression "*(int *)param_1" (* "*") (cast_expression "(int *)param_1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1"))) (+ "+") (number_literal "8")) () ")"))))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))))) (; ";")) (if_statement "if (pcVar1 != (char *)0x0) goto LAB_002d36ac;" (if "if") (parenthesized_expression "(pcVar1 != (char *)0x0)" (( "(") (binary_expression "pcVar1 != (char *)0x0" (identifier "pcVar1") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_002d36ac;" (goto "goto") (statement_identifier "LAB_002d36ac") (; ";"))) (labeled_statement "LAB_002d3724:\n    if (*param_3 == (Task *)0x0) {\n      if (((CONCAT31(in_register_00000018,param_2) == 0) || (param_1[0x20] != (Task)0x0)) ||\n         ((*(int *)(this + 4) == 0 && (*(int *)(this + 0xc) == 0)))) {\n        *param_3 = param_1;\n        return 1;\n      }\n      iVar3 = *(int *)(param_1 + 4);\n    }\n    else {\n      iVar3 = *(int *)(param_1 + 4);\n      if (param_1[0x20] != (Task)0x0) {\n        if (iVar3 == 0) {\n          if (*(int *)(this + 4) == 0) {\n            *(Task **)(this + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          if (*(int *)(*(int *)(this + 8) + 4) == 0) {\n            *(Task **)(*(int *)(this + 8) + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }\n        goto LAB_002d3834;\n      }\n    }" (statement_identifier "LAB_002d3724") (: ":") (if_statement "if (*param_3 == (Task *)0x0) {\n      if (((CONCAT31(in_register_00000018,param_2) == 0) || (param_1[0x20] != (Task)0x0)) ||\n         ((*(int *)(this + 4) == 0 && (*(int *)(this + 0xc) == 0)))) {\n        *param_3 = param_1;\n        return 1;\n      }\n      iVar3 = *(int *)(param_1 + 4);\n    }\n    else {\n      iVar3 = *(int *)(param_1 + 4);\n      if (param_1[0x20] != (Task)0x0) {\n        if (iVar3 == 0) {\n          if (*(int *)(this + 4) == 0) {\n            *(Task **)(this + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          if (*(int *)(*(int *)(this + 8) + 4) == 0) {\n            *(Task **)(*(int *)(this + 8) + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }\n        goto LAB_002d3834;\n      }\n    }" (if "if") (parenthesized_expression "(*param_3 == (Task *)0x0)" (( "(") (binary_expression "*param_3 == (Task *)0x0" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (== "==") (cast_expression "(Task *)0x0" (( "(") (type_descriptor "Task *" (type_identifier "Task") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      if (((CONCAT31(in_register_00000018,param_2) == 0) || (param_1[0x20] != (Task)0x0)) ||\n         ((*(int *)(this + 4) == 0 && (*(int *)(this + 0xc) == 0)))) {\n        *param_3 = param_1;\n        return 1;\n      }\n      iVar3 = *(int *)(param_1 + 4);\n    }" ({ "{") (if_statement "if (((CONCAT31(in_register_00000018,param_2) == 0) || (param_1[0x20] != (Task)0x0)) ||\n         ((*(int *)(this + 4) == 0 && (*(int *)(this + 0xc) == 0)))) {\n        *param_3 = param_1;\n        return 1;\n      }" (if "if") (parenthesized_expression "(((CONCAT31(in_register_00000018,param_2) == 0) || (param_1[0x20] != (Task)0x0)) ||\n         ((*(int *)(this + 4) == 0 && (*(int *)(this + 0xc) == 0))))" (( "(") (binary_expression "((CONCAT31(in_register_00000018,param_2) == 0) || (param_1[0x20] != (Task)0x0)) ||\n         ((*(int *)(this + 4) == 0 && (*(int *)(this + 0xc) == 0)))" (parenthesized_expression "((CONCAT31(in_register_00000018,param_2) == 0) || (param_1[0x20] != (Task)0x0))" (( "(") (binary_expression "(CONCAT31(in_register_00000018,param_2) == 0) || (param_1[0x20] != (Task)0x0)" (parenthesized_expression "(CONCAT31(in_register_00000018,param_2) == 0)" (( "(") (binary_expression "CONCAT31(in_register_00000018,param_2) == 0" (call_expression "CONCAT31(in_register_00000018,param_2)" (identifier "CONCAT31") (argument_list "(in_register_00000018,param_2)" (( "(") (identifier "in_register_00000018") (, ",") (identifier "param_2") () ")"))) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(param_1[0x20] != (Task)0x0)" (( "(") (binary_expression "param_1[0x20] != (Task)0x0" (subscript_expression "param_1[0x20]" (identifier "param_1") ([ "[") (number_literal "0x20") (] "]")) (!= "!=") (cast_expression "(Task)0x0" (( "(") (type_descriptor "Task" (type_identifier "Task")) () ")") (number_literal "0x0"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "((*(int *)(this + 4) == 0 && (*(int *)(this + 0xc) == 0)))" (( "(") (parenthesized_expression "(*(int *)(this + 4) == 0 && (*(int *)(this + 0xc) == 0))" (( "(") (binary_expression "*(int *)(this + 4) == 0 && (*(int *)(this + 0xc) == 0)" (binary_expression "*(int *)(this + 4) == 0" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "0")) (&& "&&") (parenthesized_expression "(*(int *)(this + 0xc) == 0)" (( "(") (binary_expression "*(int *)(this + 0xc) == 0" (pointer_expression "*(int *)(this + 0xc)" (* "*") (cast_expression "(int *)(this + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0xc)" (( "(") (binary_expression "this + 0xc" (identifier "this") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n        *param_3 = param_1;\n        return 1;\n      }" ({ "{") (expression_statement "*param_3 = param_1;" (assignment_expression "*param_3 = param_1" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "param_1")) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "iVar3 = *(int *)(param_1 + 4);" (assignment_expression "iVar3 = *(int *)(param_1 + 4)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      iVar3 = *(int *)(param_1 + 4);\n      if (param_1[0x20] != (Task)0x0) {\n        if (iVar3 == 0) {\n          if (*(int *)(this + 4) == 0) {\n            *(Task **)(this + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          if (*(int *)(*(int *)(this + 8) + 4) == 0) {\n            *(Task **)(*(int *)(this + 8) + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }\n        goto LAB_002d3834;\n      }\n    }" (else "else") (compound_statement "{\n      iVar3 = *(int *)(param_1 + 4);\n      if (param_1[0x20] != (Task)0x0) {\n        if (iVar3 == 0) {\n          if (*(int *)(this + 4) == 0) {\n            *(Task **)(this + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          if (*(int *)(*(int *)(this + 8) + 4) == 0) {\n            *(Task **)(*(int *)(this + 8) + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }\n        goto LAB_002d3834;\n      }\n    }" ({ "{") (expression_statement "iVar3 = *(int *)(param_1 + 4);" (assignment_expression "iVar3 = *(int *)(param_1 + 4)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (param_1[0x20] != (Task)0x0) {\n        if (iVar3 == 0) {\n          if (*(int *)(this + 4) == 0) {\n            *(Task **)(this + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          if (*(int *)(*(int *)(this + 8) + 4) == 0) {\n            *(Task **)(*(int *)(this + 8) + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }\n        goto LAB_002d3834;\n      }" (if "if") (parenthesized_expression "(param_1[0x20] != (Task)0x0)" (( "(") (binary_expression "param_1[0x20] != (Task)0x0" (subscript_expression "param_1[0x20]" (identifier "param_1") ([ "[") (number_literal "0x20") (] "]")) (!= "!=") (cast_expression "(Task)0x0" (( "(") (type_descriptor "Task" (type_identifier "Task")) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        if (iVar3 == 0) {\n          if (*(int *)(this + 4) == 0) {\n            *(Task **)(this + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          if (*(int *)(*(int *)(this + 8) + 4) == 0) {\n            *(Task **)(*(int *)(this + 8) + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }\n        goto LAB_002d3834;\n      }" ({ "{") (if_statement "if (iVar3 == 0) {\n          if (*(int *)(this + 4) == 0) {\n            *(Task **)(this + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          if (*(int *)(*(int *)(this + 8) + 4) == 0) {\n            *(Task **)(*(int *)(this + 8) + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if (*(int *)(this + 4) == 0) {\n            *(Task **)(this + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          if (*(int *)(*(int *)(this + 8) + 4) == 0) {\n            *(Task **)(*(int *)(this + 8) + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }\n          goto LAB_002d386c;\n        }" ({ "{") (if_statement "if (*(int *)(this + 4) == 0) {\n            *(Task **)(this + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }" (if "if") (parenthesized_expression "(*(int *)(this + 4) == 0)" (( "(") (binary_expression "*(int *)(this + 4) == 0" (pointer_expression "*(int *)(this + 4)" (* "*") (cast_expression "(int *)(this + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            *(Task **)(this + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }" ({ "{") (expression_statement "*(Task **)(this + 4) = param_1;" (assignment_expression "*(Task **)(this + 4) = param_1" (pointer_expression "*(Task **)(this + 4)" (* "*") (cast_expression "(Task **)(this + 4)" (( "(") (type_descriptor "Task **" (type_identifier "Task") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 4)" (( "(") (binary_expression "this + 4" (identifier "this") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (expression_statement "*(Task **)(this + 8) = param_1;" (assignment_expression "*(Task **)(this + 8) = param_1" (pointer_expression "*(Task **)(this + 8)" (* "*") (cast_expression "(Task **)(this + 8)" (( "(") (type_descriptor "Task **" (type_identifier "Task") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 8)" (( "(") (binary_expression "this + 8" (identifier "this") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (goto_statement "goto LAB_002d3768;" (goto "goto") (statement_identifier "LAB_002d3768") (; ";")) (} "}"))) (if_statement "if (*(int *)(*(int *)(this + 8) + 4) == 0) {\n            *(Task **)(*(int *)(this + 8) + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }" (if "if") (parenthesized_expression "(*(int *)(*(int *)(this + 8) + 4) == 0)" (( "(") (binary_expression "*(int *)(*(int *)(this + 8) + 4) == 0" (pointer_expression "*(int *)(*(int *)(this + 8) + 4)" (* "*") (cast_expression "(int *)(*(int *)(this + 8) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(this + 8) + 4)" (( "(") (binary_expression "*(int *)(this + 8) + 4" (pointer_expression "*(int *)(this + 8)" (* "*") (cast_expression "(int *)(this + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 8)" (( "(") (binary_expression "this + 8" (identifier "this") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            *(Task **)(*(int *)(this + 8) + 4) = param_1;\n            *(Task **)(this + 8) = param_1;\n            goto LAB_002d3768;\n          }" ({ "{") (expression_statement "*(Task **)(*(int *)(this + 8) + 4) = param_1;" (assignment_expression "*(Task **)(*(int *)(this + 8) + 4) = param_1" (pointer_expression "*(Task **)(*(int *)(this + 8) + 4)" (* "*") (cast_expression "(Task **)(*(int *)(this + 8) + 4)" (( "(") (type_descriptor "Task **" (type_identifier "Task") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(this + 8) + 4)" (( "(") (binary_expression "*(int *)(this + 8) + 4" (pointer_expression "*(int *)(this + 8)" (* "*") (cast_expression "(int *)(this + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 8)" (( "(") (binary_expression "this + 8" (identifier "this") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (expression_statement "*(Task **)(this + 8) = param_1;" (assignment_expression "*(Task **)(this + 8) = param_1" (pointer_expression "*(Task **)(this + 8)" (* "*") (cast_expression "(Task **)(this + 8)" (( "(") (type_descriptor "Task **" (type_identifier "Task") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 8)" (( "(") (binary_expression "this + 8" (identifier "this") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (goto_statement "goto LAB_002d3768;" (goto "goto") (statement_identifier "LAB_002d3768") (; ";")) (} "}"))) (goto_statement "goto LAB_002d386c;" (goto "goto") (statement_identifier "LAB_002d386c") (; ";")) (} "}"))) (goto_statement "goto LAB_002d3834;" (goto "goto") (statement_identifier "LAB_002d3834") (; ";")) (} "}"))) (} "}"))))) (if_statement "if (iVar3 == 0) {\n      if (*(int *)(this + 0xc) == 0) {\n        *(Task **)(this + 0xc) = param_1;\n        *(Task **)(this + 0x10) = param_1;\nLAB_002d3768:\n        (**(code **)(**(int **)(this + 0x20) + 0xc))(*(int **)(this + 0x20));\n        return 0;\n      }\n      if (*(int *)(*(int *)(this + 0x10) + 4) == 0) {\n        *(Task **)(*(int *)(this + 0x10) + 4) = param_1;\n        *(Task **)(this + 0x10) = param_1;\n        goto LAB_002d3768;\n      }\n      goto LAB_002d386c;\n    }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (*(int *)(this + 0xc) == 0) {\n        *(Task **)(this + 0xc) = param_1;\n        *(Task **)(this + 0x10) = param_1;\nLAB_002d3768:\n        (**(code **)(**(int **)(this + 0x20) + 0xc))(*(int **)(this + 0x20));\n        return 0;\n      }\n      if (*(int *)(*(int *)(this + 0x10) + 4) == 0) {\n        *(Task **)(*(int *)(this + 0x10) + 4) = param_1;\n        *(Task **)(this + 0x10) = param_1;\n        goto LAB_002d3768;\n      }\n      goto LAB_002d386c;\n    }" ({ "{") (if_statement "if (*(int *)(this + 0xc) == 0) {\n        *(Task **)(this + 0xc) = param_1;\n        *(Task **)(this + 0x10) = param_1;\nLAB_002d3768:\n        (**(code **)(**(int **)(this + 0x20) + 0xc))(*(int **)(this + 0x20));\n        return 0;\n      }" (if "if") (parenthesized_expression "(*(int *)(this + 0xc) == 0)" (( "(") (binary_expression "*(int *)(this + 0xc) == 0" (pointer_expression "*(int *)(this + 0xc)" (* "*") (cast_expression "(int *)(this + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0xc)" (( "(") (binary_expression "this + 0xc" (identifier "this") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(Task **)(this + 0xc) = param_1;\n        *(Task **)(this + 0x10) = param_1;\nLAB_002d3768:\n        (**(code **)(**(int **)(this + 0x20) + 0xc))(*(int **)(this + 0x20));\n        return 0;\n      }" ({ "{") (expression_statement "*(Task **)(this + 0xc) = param_1;" (assignment_expression "*(Task **)(this + 0xc) = param_1" (pointer_expression "*(Task **)(this + 0xc)" (* "*") (cast_expression "(Task **)(this + 0xc)" (( "(") (type_descriptor "Task **" (type_identifier "Task") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 0xc)" (( "(") (binary_expression "this + 0xc" (identifier "this") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (expression_statement "*(Task **)(this + 0x10) = param_1;" (assignment_expression "*(Task **)(this + 0x10) = param_1" (pointer_expression "*(Task **)(this + 0x10)" (* "*") (cast_expression "(Task **)(this + 0x10)" (( "(") (type_descriptor "Task **" (type_identifier "Task") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 0x10)" (( "(") (binary_expression "this + 0x10" (identifier "this") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (labeled_statement "LAB_002d3768:\n        (**(code **)(**(int **)(this + 0x20) + 0xc))(*(int **)(this + 0x20));" (statement_identifier "LAB_002d3768") (: ":") (expression_statement "(**(code **)(**(int **)(this + 0x20) + 0xc))(*(int **)(this + 0x20));" (call_expression "(**(code **)(**(int **)(this + 0x20) + 0xc))(*(int **)(this + 0x20))" (parenthesized_expression "(**(code **)(**(int **)(this + 0x20) + 0xc))" (( "(") (pointer_expression "**(code **)(**(int **)(this + 0x20) + 0xc)" (* "*") (pointer_expression "*(code **)(**(int **)(this + 0x20) + 0xc)" (* "*") (cast_expression "(code **)(**(int **)(this + 0x20) + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(this + 0x20) + 0xc)" (( "(") (binary_expression "**(int **)(this + 0x20) + 0xc" (pointer_expression "**(int **)(this + 0x20)" (* "*") (pointer_expression "*(int **)(this + 0x20)" (* "*") (cast_expression "(int **)(this + 0x20)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 0x20)" (( "(") (binary_expression "this + 0x20" (identifier "this") (+ "+") (number_literal "0x20")) () ")"))))) (+ "+") (number_literal "0xc")) () ")"))))) () ")")) (argument_list "(*(int **)(this + 0x20))" (( "(") (pointer_expression "*(int **)(this + 0x20)" (* "*") (cast_expression "(int **)(this + 0x20)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 0x20)" (( "(") (binary_expression "this + 0x20" (identifier "this") (+ "+") (number_literal "0x20")) () ")")))) () ")"))) (; ";"))) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (*(int *)(*(int *)(this + 0x10) + 4) == 0) {\n        *(Task **)(*(int *)(this + 0x10) + 4) = param_1;\n        *(Task **)(this + 0x10) = param_1;\n        goto LAB_002d3768;\n      }" (if "if") (parenthesized_expression "(*(int *)(*(int *)(this + 0x10) + 4) == 0)" (( "(") (binary_expression "*(int *)(*(int *)(this + 0x10) + 4) == 0" (pointer_expression "*(int *)(*(int *)(this + 0x10) + 4)" (* "*") (cast_expression "(int *)(*(int *)(this + 0x10) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(this + 0x10) + 4)" (( "(") (binary_expression "*(int *)(this + 0x10) + 4" (pointer_expression "*(int *)(this + 0x10)" (* "*") (cast_expression "(int *)(this + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x10)" (( "(") (binary_expression "this + 0x10" (identifier "this") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(Task **)(*(int *)(this + 0x10) + 4) = param_1;\n        *(Task **)(this + 0x10) = param_1;\n        goto LAB_002d3768;\n      }" ({ "{") (expression_statement "*(Task **)(*(int *)(this + 0x10) + 4) = param_1;" (assignment_expression "*(Task **)(*(int *)(this + 0x10) + 4) = param_1" (pointer_expression "*(Task **)(*(int *)(this + 0x10) + 4)" (* "*") (cast_expression "(Task **)(*(int *)(this + 0x10) + 4)" (( "(") (type_descriptor "Task **" (type_identifier "Task") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(this + 0x10) + 4)" (( "(") (binary_expression "*(int *)(this + 0x10) + 4" (pointer_expression "*(int *)(this + 0x10)" (* "*") (cast_expression "(int *)(this + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this + 0x10)" (( "(") (binary_expression "this + 0x10" (identifier "this") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (expression_statement "*(Task **)(this + 0x10) = param_1;" (assignment_expression "*(Task **)(this + 0x10) = param_1" (pointer_expression "*(Task **)(this + 0x10)" (* "*") (cast_expression "(Task **)(this + 0x10)" (( "(") (type_descriptor "Task **" (type_identifier "Task") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(this + 0x10)" (( "(") (binary_expression "this + 0x10" (identifier "this") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (goto_statement "goto LAB_002d3768;" (goto "goto") (statement_identifier "LAB_002d3768") (; ";")) (} "}"))) (goto_statement "goto LAB_002d386c;" (goto "goto") (statement_identifier "LAB_002d386c") (; ";")) (} "}"))) (labeled_statement "LAB_002d3834:\n    (*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x39bc,0x29,\n               PTR_s_in_a_linker_script_004c191c + 0x3aac);" (statement_identifier "LAB_002d3834") (: ":") (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x39bc,0x29,\n               PTR_s_in_a_linker_script_004c191c + 0x3aac);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n              (PTR_s_in_a_linker_script_004c191c + 0x39bc,0x29,\n               PTR_s_in_a_linker_script_004c191c + 0x3aac)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004c1a30"))) () ")")) (argument_list "(PTR_s_in_a_linker_script_004c191c + 0x39bc,0x29,\n               PTR_s_in_a_linker_script_004c191c + 0x3aac)" (( "(") (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x39bc" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "0x39bc")) (, ",") (number_literal "0x29") (, ",") (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x3aac" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "0x3aac")) () ")"))) (; ";"))) (} "}")))) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x7f8,0xab,\n             PTR_s_in_a_linker_script_004c191c + 0x3ad4);" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)\n            (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x7f8,0xab,\n             PTR_s_in_a_linker_script_004c191c + 0x3ad4)" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004c1a30"))) () ")")) (argument_list "(PTR_s_ral_options14Struct_no_crefE_004c127c + -0x7f8,0xab,\n             PTR_s_in_a_linker_script_004c191c + 0x3ad4)" (( "(") (binary_expression "PTR_s_ral_options14Struct_no_crefE_004c127c + -0x7f8" (identifier "PTR_s_ral_options14Struct_no_crefE_004c127c") (+ "+") (number_literal "-0x7f8")) (, ",") (number_literal "0xab") (, ",") (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x3ad4" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "0x3ad4")) () ")"))) (; ";")) (labeled_statement "LAB_002d386c:\n  iVar4 = 0x5a;" (statement_identifier "LAB_002d386c") (: ":") (expression_statement "iVar4 = 0x5a;" (assignment_expression "iVar4 = 0x5a" (identifier "iVar4") (= "=") (number_literal "0x5a")) (; ";"))) (expression_statement "piVar7 = (int *)(PTR_s_in_a_linker_script_004c191c + 0x3ab8);" (assignment_expression "piVar7 = (int *)(PTR_s_in_a_linker_script_004c191c + 0x3ab8)" (identifier "piVar7") (= "=") (cast_expression "(int *)(PTR_s_in_a_linker_script_004c191c + 0x3ab8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_in_a_linker_script_004c191c + 0x3ab8)" (( "(") (binary_expression "PTR_s_in_a_linker_script_004c191c + 0x3ab8" (identifier "PTR_s_in_a_linker_script_004c191c") (+ "+") (number_literal "0x3ab8")) () ")")))) (; ";")) (expression_statement "this_00 = (Workqueue *)(PTR_s__s_004c1a50 + 0x970);" (assignment_expression "this_00 = (Workqueue *)(PTR_s__s_004c1a50 + 0x970)" (identifier "this_00") (= "=") (cast_expression "(Workqueue *)(PTR_s__s_004c1a50 + 0x970)" (( "(") (type_descriptor "Workqueue *" (type_identifier "Workqueue") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s__s_004c1a50 + 0x970)" (( "(") (binary_expression "PTR_s__s_004c1a50 + 0x970" (identifier "PTR_s__s_004c1a50") (+ "+") (number_literal "0x970")) () ")")))) (; ";")) (expression_statement "puVar9 = PTR_do_gold_unreachable_004c1a30;" (assignment_expression "puVar9 = PTR_do_gold_unreachable_004c1a30" (identifier "puVar9") (= "=") (identifier "PTR_do_gold_unreachable_004c1a30")) (; ";")) (expression_statement "(*(code *)PTR_do_gold_unreachable_004c1a30)();" (call_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)()" (parenthesized_expression "(*(code *)PTR_do_gold_unreachable_004c1a30)" (( "(") (pointer_expression "*(code *)PTR_do_gold_unreachable_004c1a30" (* "*") (cast_expression "(code *)PTR_do_gold_unreachable_004c1a30" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_gold_unreachable_004c1a30"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar3 = *piVar7;" (assignment_expression "iVar3 = *piVar7" (identifier "iVar3") (= "=") (pointer_expression "*piVar7" (* "*") (identifier "piVar7"))) (; ";")) (expression_statement "piVar8 = piVar7 + 1;" (assignment_expression "piVar8 = piVar7 + 1" (identifier "piVar8") (= "=") (binary_expression "piVar7 + 1" (identifier "piVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "apTStack_48[0] = (Task *)0x0;" (assignment_expression "apTStack_48[0] = (Task *)0x0" (subscript_expression "apTStack_48[0]" (identifier "apTStack_48") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(Task *)0x0" (( "(") (type_descriptor "Task *" (type_identifier "Task") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (piVar8 == piVar7 + iVar3 + 1) {\n    apTStack_48[0] = (Task *)0x0;\n  }\n  else {\n    pWStack_40 = this;\n    do {\n      while (pcVar1 = (char *)*piVar8, *pcVar1 != '\0') {\n        iVar2 = *(int *)(pcVar1 + 4) + -1;\n        if (*(int *)(pcVar1 + 4) < 1) {\n          uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                            (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0xa1,\n                             *(int *)(puVar9 + 0x1ee098) + 0x3a6c);\n          return uVar6;\n        }\n        pcVar1[8] = '\0';\n        pcVar1[9] = '\0';\n        pcVar1[10] = '\0';\n        pcVar1[0xb] = '\0';\n        *(int *)(pcVar1 + 4) = iVar2;\n        if ((iVar2 == 0) && (pTVar5 = *(Task **)(pcVar1 + 0xc), pTVar5 != (Task *)0x0)) {\n          iVar3 = *(int *)(pTVar5 + 4);\n          if (*(Task **)(pcVar1 + 0x10) == pTVar5) goto LAB_002d3a40;\n          while (*(int *)(pcVar1 + 0xc) = iVar3, iVar3 != 0) {\n            *(undefined4 *)(pTVar5 + 4) = 0;\n            while( true ) {\n              *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n              return_or_queue(this_00,pTVar5,true,apTStack_48);\n              pTVar5 = *(Task **)(pcVar1 + 0xc);\n              if (pTVar5 == (Task *)0x0) goto LAB_002d398c;\n              iVar3 = *(int *)(pTVar5 + 4);\n              if (*(Task **)(pcVar1 + 0x10) != pTVar5) break;\nLAB_002d3a40:\n              if (iVar3 != 0) goto LAB_002d3a94;\n              pcVar1[0xc] = '\0';\n              pcVar1[0xd] = '\0';\n              pcVar1[0xe] = '\0';\n              pcVar1[0xf] = '\0';\n              pcVar1[0x10] = '\0';\n              pcVar1[0x11] = '\0';\n              pcVar1[0x12] = '\0';\n              pcVar1[0x13] = '\0';\n            }\n          }\nLAB_002d3a5c:\n          uVar6 = 0x5a;\n          goto LAB_002d3a60;\n        }\n        piVar8 = piVar8 + 1;\n        if (piVar8 == piVar7 + iVar3 + 1) {\n          return apTStack_48[0];\n        }\n      }\n      if (iVar4 != *(int *)(pcVar1 + 8)) {\n        uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                          (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0x84,\n                           *(int *)(puVar9 + 0x1ee098) + 0x3a5c);\n        return uVar6;\n      }\n      pcVar1[8] = '\0';\n      pcVar1[9] = '\0';\n      pcVar1[10] = '\0';\n      pcVar1[0xb] = '\0';\n      do {\n        pTVar5 = *(Task **)(pcVar1 + 0xc);\n        if (pTVar5 == (Task *)0x0) break;\n        iVar3 = *(int *)(pTVar5 + 4);\n        if (pTVar5 == *(Task **)(pcVar1 + 0x10)) {\n          if (iVar3 != 0) goto LAB_002d3a94;\n          pcVar1[0xc] = '\0';\n          pcVar1[0xd] = '\0';\n          pcVar1[0xe] = '\0';\n          pcVar1[0xf] = '\0';\n          pcVar1[0x10] = '\0';\n          pcVar1[0x11] = '\0';\n          pcVar1[0x12] = '\0';\n          pcVar1[0x13] = '\0';\n        }\n        else {\n          *(int *)(pcVar1 + 0xc) = iVar3;\n          if (iVar3 == 0) goto LAB_002d3a5c;\n          *(undefined4 *)(pTVar5 + 4) = 0;\n        }\n        *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n        iVar3 = return_or_queue(this_00,pTVar5,false,apTStack_48);\n      } while (iVar3 == 0);\nLAB_002d398c:\n      iVar3 = *piVar7;\n      piVar8 = piVar8 + 1;\n    } while (piVar8 != piVar7 + iVar3 + 1);\n  }" (if "if") (parenthesized_expression "(piVar8 == piVar7 + iVar3 + 1)" (( "(") (binary_expression "piVar8 == piVar7 + iVar3 + 1" (identifier "piVar8") (== "==") (binary_expression "piVar7 + iVar3 + 1" (binary_expression "piVar7 + iVar3" (identifier "piVar7") (+ "+") (identifier "iVar3")) (+ "+") (number_literal "1"))) () ")")) (compound_statement "{\n    apTStack_48[0] = (Task *)0x0;\n  }" ({ "{") (expression_statement "apTStack_48[0] = (Task *)0x0;" (assignment_expression "apTStack_48[0] = (Task *)0x0" (subscript_expression "apTStack_48[0]" (identifier "apTStack_48") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(Task *)0x0" (( "(") (type_descriptor "Task *" (type_identifier "Task") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n    pWStack_40 = this;\n    do {\n      while (pcVar1 = (char *)*piVar8, *pcVar1 != '\0') {\n        iVar2 = *(int *)(pcVar1 + 4) + -1;\n        if (*(int *)(pcVar1 + 4) < 1) {\n          uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                            (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0xa1,\n                             *(int *)(puVar9 + 0x1ee098) + 0x3a6c);\n          return uVar6;\n        }\n        pcVar1[8] = '\0';\n        pcVar1[9] = '\0';\n        pcVar1[10] = '\0';\n        pcVar1[0xb] = '\0';\n        *(int *)(pcVar1 + 4) = iVar2;\n        if ((iVar2 == 0) && (pTVar5 = *(Task **)(pcVar1 + 0xc), pTVar5 != (Task *)0x0)) {\n          iVar3 = *(int *)(pTVar5 + 4);\n          if (*(Task **)(pcVar1 + 0x10) == pTVar5) goto LAB_002d3a40;\n          while (*(int *)(pcVar1 + 0xc) = iVar3, iVar3 != 0) {\n            *(undefined4 *)(pTVar5 + 4) = 0;\n            while( true ) {\n              *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n              return_or_queue(this_00,pTVar5,true,apTStack_48);\n              pTVar5 = *(Task **)(pcVar1 + 0xc);\n              if (pTVar5 == (Task *)0x0) goto LAB_002d398c;\n              iVar3 = *(int *)(pTVar5 + 4);\n              if (*(Task **)(pcVar1 + 0x10) != pTVar5) break;\nLAB_002d3a40:\n              if (iVar3 != 0) goto LAB_002d3a94;\n              pcVar1[0xc] = '\0';\n              pcVar1[0xd] = '\0';\n              pcVar1[0xe] = '\0';\n              pcVar1[0xf] = '\0';\n              pcVar1[0x10] = '\0';\n              pcVar1[0x11] = '\0';\n              pcVar1[0x12] = '\0';\n              pcVar1[0x13] = '\0';\n            }\n          }\nLAB_002d3a5c:\n          uVar6 = 0x5a;\n          goto LAB_002d3a60;\n        }\n        piVar8 = piVar8 + 1;\n        if (piVar8 == piVar7 + iVar3 + 1) {\n          return apTStack_48[0];\n        }\n      }\n      if (iVar4 != *(int *)(pcVar1 + 8)) {\n        uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                          (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0x84,\n                           *(int *)(puVar9 + 0x1ee098) + 0x3a5c);\n        return uVar6;\n      }\n      pcVar1[8] = '\0';\n      pcVar1[9] = '\0';\n      pcVar1[10] = '\0';\n      pcVar1[0xb] = '\0';\n      do {\n        pTVar5 = *(Task **)(pcVar1 + 0xc);\n        if (pTVar5 == (Task *)0x0) break;\n        iVar3 = *(int *)(pTVar5 + 4);\n        if (pTVar5 == *(Task **)(pcVar1 + 0x10)) {\n          if (iVar3 != 0) goto LAB_002d3a94;\n          pcVar1[0xc] = '\0';\n          pcVar1[0xd] = '\0';\n          pcVar1[0xe] = '\0';\n          pcVar1[0xf] = '\0';\n          pcVar1[0x10] = '\0';\n          pcVar1[0x11] = '\0';\n          pcVar1[0x12] = '\0';\n          pcVar1[0x13] = '\0';\n        }\n        else {\n          *(int *)(pcVar1 + 0xc) = iVar3;\n          if (iVar3 == 0) goto LAB_002d3a5c;\n          *(undefined4 *)(pTVar5 + 4) = 0;\n        }\n        *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n        iVar3 = return_or_queue(this_00,pTVar5,false,apTStack_48);\n      } while (iVar3 == 0);\nLAB_002d398c:\n      iVar3 = *piVar7;\n      piVar8 = piVar8 + 1;\n    } while (piVar8 != piVar7 + iVar3 + 1);\n  }" (else "else") (compound_statement "{\n    pWStack_40 = this;\n    do {\n      while (pcVar1 = (char *)*piVar8, *pcVar1 != '\0') {\n        iVar2 = *(int *)(pcVar1 + 4) + -1;\n        if (*(int *)(pcVar1 + 4) < 1) {\n          uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                            (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0xa1,\n                             *(int *)(puVar9 + 0x1ee098) + 0x3a6c);\n          return uVar6;\n        }\n        pcVar1[8] = '\0';\n        pcVar1[9] = '\0';\n        pcVar1[10] = '\0';\n        pcVar1[0xb] = '\0';\n        *(int *)(pcVar1 + 4) = iVar2;\n        if ((iVar2 == 0) && (pTVar5 = *(Task **)(pcVar1 + 0xc), pTVar5 != (Task *)0x0)) {\n          iVar3 = *(int *)(pTVar5 + 4);\n          if (*(Task **)(pcVar1 + 0x10) == pTVar5) goto LAB_002d3a40;\n          while (*(int *)(pcVar1 + 0xc) = iVar3, iVar3 != 0) {\n            *(undefined4 *)(pTVar5 + 4) = 0;\n            while( true ) {\n              *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n              return_or_queue(this_00,pTVar5,true,apTStack_48);\n              pTVar5 = *(Task **)(pcVar1 + 0xc);\n              if (pTVar5 == (Task *)0x0) goto LAB_002d398c;\n              iVar3 = *(int *)(pTVar5 + 4);\n              if (*(Task **)(pcVar1 + 0x10) != pTVar5) break;\nLAB_002d3a40:\n              if (iVar3 != 0) goto LAB_002d3a94;\n              pcVar1[0xc] = '\0';\n              pcVar1[0xd] = '\0';\n              pcVar1[0xe] = '\0';\n              pcVar1[0xf] = '\0';\n              pcVar1[0x10] = '\0';\n              pcVar1[0x11] = '\0';\n              pcVar1[0x12] = '\0';\n              pcVar1[0x13] = '\0';\n            }\n          }\nLAB_002d3a5c:\n          uVar6 = 0x5a;\n          goto LAB_002d3a60;\n        }\n        piVar8 = piVar8 + 1;\n        if (piVar8 == piVar7 + iVar3 + 1) {\n          return apTStack_48[0];\n        }\n      }\n      if (iVar4 != *(int *)(pcVar1 + 8)) {\n        uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                          (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0x84,\n                           *(int *)(puVar9 + 0x1ee098) + 0x3a5c);\n        return uVar6;\n      }\n      pcVar1[8] = '\0';\n      pcVar1[9] = '\0';\n      pcVar1[10] = '\0';\n      pcVar1[0xb] = '\0';\n      do {\n        pTVar5 = *(Task **)(pcVar1 + 0xc);\n        if (pTVar5 == (Task *)0x0) break;\n        iVar3 = *(int *)(pTVar5 + 4);\n        if (pTVar5 == *(Task **)(pcVar1 + 0x10)) {\n          if (iVar3 != 0) goto LAB_002d3a94;\n          pcVar1[0xc] = '\0';\n          pcVar1[0xd] = '\0';\n          pcVar1[0xe] = '\0';\n          pcVar1[0xf] = '\0';\n          pcVar1[0x10] = '\0';\n          pcVar1[0x11] = '\0';\n          pcVar1[0x12] = '\0';\n          pcVar1[0x13] = '\0';\n        }\n        else {\n          *(int *)(pcVar1 + 0xc) = iVar3;\n          if (iVar3 == 0) goto LAB_002d3a5c;\n          *(undefined4 *)(pTVar5 + 4) = 0;\n        }\n        *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n        iVar3 = return_or_queue(this_00,pTVar5,false,apTStack_48);\n      } while (iVar3 == 0);\nLAB_002d398c:\n      iVar3 = *piVar7;\n      piVar8 = piVar8 + 1;\n    } while (piVar8 != piVar7 + iVar3 + 1);\n  }" ({ "{") (expression_statement "pWStack_40 = this;" (assignment_expression "pWStack_40 = this" (identifier "pWStack_40") (= "=") (identifier "this")) (; ";")) (do_statement "do {\n      while (pcVar1 = (char *)*piVar8, *pcVar1 != '\0') {\n        iVar2 = *(int *)(pcVar1 + 4) + -1;\n        if (*(int *)(pcVar1 + 4) < 1) {\n          uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                            (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0xa1,\n                             *(int *)(puVar9 + 0x1ee098) + 0x3a6c);\n          return uVar6;\n        }\n        pcVar1[8] = '\0';\n        pcVar1[9] = '\0';\n        pcVar1[10] = '\0';\n        pcVar1[0xb] = '\0';\n        *(int *)(pcVar1 + 4) = iVar2;\n        if ((iVar2 == 0) && (pTVar5 = *(Task **)(pcVar1 + 0xc), pTVar5 != (Task *)0x0)) {\n          iVar3 = *(int *)(pTVar5 + 4);\n          if (*(Task **)(pcVar1 + 0x10) == pTVar5) goto LAB_002d3a40;\n          while (*(int *)(pcVar1 + 0xc) = iVar3, iVar3 != 0) {\n            *(undefined4 *)(pTVar5 + 4) = 0;\n            while( true ) {\n              *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n              return_or_queue(this_00,pTVar5,true,apTStack_48);\n              pTVar5 = *(Task **)(pcVar1 + 0xc);\n              if (pTVar5 == (Task *)0x0) goto LAB_002d398c;\n              iVar3 = *(int *)(pTVar5 + 4);\n              if (*(Task **)(pcVar1 + 0x10) != pTVar5) break;\nLAB_002d3a40:\n              if (iVar3 != 0) goto LAB_002d3a94;\n              pcVar1[0xc] = '\0';\n              pcVar1[0xd] = '\0';\n              pcVar1[0xe] = '\0';\n              pcVar1[0xf] = '\0';\n              pcVar1[0x10] = '\0';\n              pcVar1[0x11] = '\0';\n              pcVar1[0x12] = '\0';\n              pcVar1[0x13] = '\0';\n            }\n          }\nLAB_002d3a5c:\n          uVar6 = 0x5a;\n          goto LAB_002d3a60;\n        }\n        piVar8 = piVar8 + 1;\n        if (piVar8 == piVar7 + iVar3 + 1) {\n          return apTStack_48[0];\n        }\n      }\n      if (iVar4 != *(int *)(pcVar1 + 8)) {\n        uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                          (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0x84,\n                           *(int *)(puVar9 + 0x1ee098) + 0x3a5c);\n        return uVar6;\n      }\n      pcVar1[8] = '\0';\n      pcVar1[9] = '\0';\n      pcVar1[10] = '\0';\n      pcVar1[0xb] = '\0';\n      do {\n        pTVar5 = *(Task **)(pcVar1 + 0xc);\n        if (pTVar5 == (Task *)0x0) break;\n        iVar3 = *(int *)(pTVar5 + 4);\n        if (pTVar5 == *(Task **)(pcVar1 + 0x10)) {\n          if (iVar3 != 0) goto LAB_002d3a94;\n          pcVar1[0xc] = '\0';\n          pcVar1[0xd] = '\0';\n          pcVar1[0xe] = '\0';\n          pcVar1[0xf] = '\0';\n          pcVar1[0x10] = '\0';\n          pcVar1[0x11] = '\0';\n          pcVar1[0x12] = '\0';\n          pcVar1[0x13] = '\0';\n        }\n        else {\n          *(int *)(pcVar1 + 0xc) = iVar3;\n          if (iVar3 == 0) goto LAB_002d3a5c;\n          *(undefined4 *)(pTVar5 + 4) = 0;\n        }\n        *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n        iVar3 = return_or_queue(this_00,pTVar5,false,apTStack_48);\n      } while (iVar3 == 0);\nLAB_002d398c:\n      iVar3 = *piVar7;\n      piVar8 = piVar8 + 1;\n    } while (piVar8 != piVar7 + iVar3 + 1);" (do "do") (compound_statement "{\n      while (pcVar1 = (char *)*piVar8, *pcVar1 != '\0') {\n        iVar2 = *(int *)(pcVar1 + 4) + -1;\n        if (*(int *)(pcVar1 + 4) < 1) {\n          uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                            (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0xa1,\n                             *(int *)(puVar9 + 0x1ee098) + 0x3a6c);\n          return uVar6;\n        }\n        pcVar1[8] = '\0';\n        pcVar1[9] = '\0';\n        pcVar1[10] = '\0';\n        pcVar1[0xb] = '\0';\n        *(int *)(pcVar1 + 4) = iVar2;\n        if ((iVar2 == 0) && (pTVar5 = *(Task **)(pcVar1 + 0xc), pTVar5 != (Task *)0x0)) {\n          iVar3 = *(int *)(pTVar5 + 4);\n          if (*(Task **)(pcVar1 + 0x10) == pTVar5) goto LAB_002d3a40;\n          while (*(int *)(pcVar1 + 0xc) = iVar3, iVar3 != 0) {\n            *(undefined4 *)(pTVar5 + 4) = 0;\n            while( true ) {\n              *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n              return_or_queue(this_00,pTVar5,true,apTStack_48);\n              pTVar5 = *(Task **)(pcVar1 + 0xc);\n              if (pTVar5 == (Task *)0x0) goto LAB_002d398c;\n              iVar3 = *(int *)(pTVar5 + 4);\n              if (*(Task **)(pcVar1 + 0x10) != pTVar5) break;\nLAB_002d3a40:\n              if (iVar3 != 0) goto LAB_002d3a94;\n              pcVar1[0xc] = '\0';\n              pcVar1[0xd] = '\0';\n              pcVar1[0xe] = '\0';\n              pcVar1[0xf] = '\0';\n              pcVar1[0x10] = '\0';\n              pcVar1[0x11] = '\0';\n              pcVar1[0x12] = '\0';\n              pcVar1[0x13] = '\0';\n            }\n          }\nLAB_002d3a5c:\n          uVar6 = 0x5a;\n          goto LAB_002d3a60;\n        }\n        piVar8 = piVar8 + 1;\n        if (piVar8 == piVar7 + iVar3 + 1) {\n          return apTStack_48[0];\n        }\n      }\n      if (iVar4 != *(int *)(pcVar1 + 8)) {\n        uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                          (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0x84,\n                           *(int *)(puVar9 + 0x1ee098) + 0x3a5c);\n        return uVar6;\n      }\n      pcVar1[8] = '\0';\n      pcVar1[9] = '\0';\n      pcVar1[10] = '\0';\n      pcVar1[0xb] = '\0';\n      do {\n        pTVar5 = *(Task **)(pcVar1 + 0xc);\n        if (pTVar5 == (Task *)0x0) break;\n        iVar3 = *(int *)(pTVar5 + 4);\n        if (pTVar5 == *(Task **)(pcVar1 + 0x10)) {\n          if (iVar3 != 0) goto LAB_002d3a94;\n          pcVar1[0xc] = '\0';\n          pcVar1[0xd] = '\0';\n          pcVar1[0xe] = '\0';\n          pcVar1[0xf] = '\0';\n          pcVar1[0x10] = '\0';\n          pcVar1[0x11] = '\0';\n          pcVar1[0x12] = '\0';\n          pcVar1[0x13] = '\0';\n        }\n        else {\n          *(int *)(pcVar1 + 0xc) = iVar3;\n          if (iVar3 == 0) goto LAB_002d3a5c;\n          *(undefined4 *)(pTVar5 + 4) = 0;\n        }\n        *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n        iVar3 = return_or_queue(this_00,pTVar5,false,apTStack_48);\n      } while (iVar3 == 0);\nLAB_002d398c:\n      iVar3 = *piVar7;\n      piVar8 = piVar8 + 1;\n    }" ({ "{") (while_statement "while (pcVar1 = (char *)*piVar8, *pcVar1 != '\0') {\n        iVar2 = *(int *)(pcVar1 + 4) + -1;\n        if (*(int *)(pcVar1 + 4) < 1) {\n          uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                            (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0xa1,\n                             *(int *)(puVar9 + 0x1ee098) + 0x3a6c);\n          return uVar6;\n        }\n        pcVar1[8] = '\0';\n        pcVar1[9] = '\0';\n        pcVar1[10] = '\0';\n        pcVar1[0xb] = '\0';\n        *(int *)(pcVar1 + 4) = iVar2;\n        if ((iVar2 == 0) && (pTVar5 = *(Task **)(pcVar1 + 0xc), pTVar5 != (Task *)0x0)) {\n          iVar3 = *(int *)(pTVar5 + 4);\n          if (*(Task **)(pcVar1 + 0x10) == pTVar5) goto LAB_002d3a40;\n          while (*(int *)(pcVar1 + 0xc) = iVar3, iVar3 != 0) {\n            *(undefined4 *)(pTVar5 + 4) = 0;\n            while( true ) {\n              *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n              return_or_queue(this_00,pTVar5,true,apTStack_48);\n              pTVar5 = *(Task **)(pcVar1 + 0xc);\n              if (pTVar5 == (Task *)0x0) goto LAB_002d398c;\n              iVar3 = *(int *)(pTVar5 + 4);\n              if (*(Task **)(pcVar1 + 0x10) != pTVar5) break;\nLAB_002d3a40:\n              if (iVar3 != 0) goto LAB_002d3a94;\n              pcVar1[0xc] = '\0';\n              pcVar1[0xd] = '\0';\n              pcVar1[0xe] = '\0';\n              pcVar1[0xf] = '\0';\n              pcVar1[0x10] = '\0';\n              pcVar1[0x11] = '\0';\n              pcVar1[0x12] = '\0';\n              pcVar1[0x13] = '\0';\n            }\n          }\nLAB_002d3a5c:\n          uVar6 = 0x5a;\n          goto LAB_002d3a60;\n        }\n        piVar8 = piVar8 + 1;\n        if (piVar8 == piVar7 + iVar3 + 1) {\n          return apTStack_48[0];\n        }\n      }" (while "while") (parenthesized_expression "(pcVar1 = (char *)*piVar8, *pcVar1 != '\0')" (( "(") (comma_expression "pcVar1 = (char *)*piVar8, *pcVar1 != '\0'" (assignment_expression "pcVar1 = (char *)*piVar8" (identifier "pcVar1") (= "=") (cast_expression "(char *)*piVar8" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar8" (* "*") (identifier "piVar8")))) (, ",") (binary_expression "*pcVar1 != '\0'" (pointer_expression "*pcVar1" (* "*") (identifier "pcVar1")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")")) (compound_statement "{\n        iVar2 = *(int *)(pcVar1 + 4) + -1;\n        if (*(int *)(pcVar1 + 4) < 1) {\n          uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                            (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0xa1,\n                             *(int *)(puVar9 + 0x1ee098) + 0x3a6c);\n          return uVar6;\n        }\n        pcVar1[8] = '\0';\n        pcVar1[9] = '\0';\n        pcVar1[10] = '\0';\n        pcVar1[0xb] = '\0';\n        *(int *)(pcVar1 + 4) = iVar2;\n        if ((iVar2 == 0) && (pTVar5 = *(Task **)(pcVar1 + 0xc), pTVar5 != (Task *)0x0)) {\n          iVar3 = *(int *)(pTVar5 + 4);\n          if (*(Task **)(pcVar1 + 0x10) == pTVar5) goto LAB_002d3a40;\n          while (*(int *)(pcVar1 + 0xc) = iVar3, iVar3 != 0) {\n            *(undefined4 *)(pTVar5 + 4) = 0;\n            while( true ) {\n              *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n              return_or_queue(this_00,pTVar5,true,apTStack_48);\n              pTVar5 = *(Task **)(pcVar1 + 0xc);\n              if (pTVar5 == (Task *)0x0) goto LAB_002d398c;\n              iVar3 = *(int *)(pTVar5 + 4);\n              if (*(Task **)(pcVar1 + 0x10) != pTVar5) break;\nLAB_002d3a40:\n              if (iVar3 != 0) goto LAB_002d3a94;\n              pcVar1[0xc] = '\0';\n              pcVar1[0xd] = '\0';\n              pcVar1[0xe] = '\0';\n              pcVar1[0xf] = '\0';\n              pcVar1[0x10] = '\0';\n              pcVar1[0x11] = '\0';\n              pcVar1[0x12] = '\0';\n              pcVar1[0x13] = '\0';\n            }\n          }\nLAB_002d3a5c:\n          uVar6 = 0x5a;\n          goto LAB_002d3a60;\n        }\n        piVar8 = piVar8 + 1;\n        if (piVar8 == piVar7 + iVar3 + 1) {\n          return apTStack_48[0];\n        }\n      }" ({ "{") (expression_statement "iVar2 = *(int *)(pcVar1 + 4) + -1;" (assignment_expression "iVar2 = *(int *)(pcVar1 + 4) + -1" (identifier "iVar2") (= "=") (binary_expression "*(int *)(pcVar1 + 4) + -1" (pointer_expression "*(int *)(pcVar1 + 4)" (* "*") (cast_expression "(int *)(pcVar1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar1 + 4)" (( "(") (binary_expression "pcVar1 + 4" (identifier "pcVar1") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (*(int *)(pcVar1 + 4) < 1) {\n          uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                            (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0xa1,\n                             *(int *)(puVar9 + 0x1ee098) + 0x3a6c);\n          return uVar6;\n        }" (if "if") (parenthesized_expression "(*(int *)(pcVar1 + 4) < 1)" (( "(") (binary_expression "*(int *)(pcVar1 + 4) < 1" (pointer_expression "*(int *)(pcVar1 + 4)" (* "*") (cast_expression "(int *)(pcVar1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar1 + 4)" (( "(") (binary_expression "pcVar1 + 4" (identifier "pcVar1") (+ "+") (number_literal "4")) () ")")))) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n          uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                            (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0xa1,\n                             *(int *)(puVar9 + 0x1ee098) + 0x3a6c);\n          return uVar6;\n        }" ({ "{") (expression_statement "uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                            (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0xa1,\n                             *(int *)(puVar9 + 0x1ee098) + 0x3a6c);" (assignment_expression "uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                            (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0xa1,\n                             *(int *)(puVar9 + 0x1ee098) + 0x3a6c)" (identifier "uVar6") (= "=") (call_expression "(**(code **)(puVar9 + 0x1ee1ac))\n                            (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0xa1,\n                             *(int *)(puVar9 + 0x1ee098) + 0x3a6c)" (parenthesized_expression "(**(code **)(puVar9 + 0x1ee1ac))" (( "(") (pointer_expression "**(code **)(puVar9 + 0x1ee1ac)" (* "*") (pointer_expression "*(code **)(puVar9 + 0x1ee1ac)" (* "*") (cast_expression "(code **)(puVar9 + 0x1ee1ac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + 0x1ee1ac)" (( "(") (binary_expression "puVar9 + 0x1ee1ac" (identifier "puVar9") (+ "+") (number_literal "0x1ee1ac")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0xa1,\n                             *(int *)(puVar9 + 0x1ee098) + 0x3a6c)" (( "(") (binary_expression "*(int *)(puVar9 + 0x1ed9f8) + -0x7f8" (pointer_expression "*(int *)(puVar9 + 0x1ed9f8)" (* "*") (cast_expression "(int *)(puVar9 + 0x1ed9f8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + 0x1ed9f8)" (( "(") (binary_expression "puVar9 + 0x1ed9f8" (identifier "puVar9") (+ "+") (number_literal "0x1ed9f8")) () ")")))) (+ "+") (number_literal "-0x7f8")) (, ",") (number_literal "0xa1") (, ",") (binary_expression "*(int *)(puVar9 + 0x1ee098) + 0x3a6c" (pointer_expression "*(int *)(puVar9 + 0x1ee098)" (* "*") (cast_expression "(int *)(puVar9 + 0x1ee098)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + 0x1ee098)" (( "(") (binary_expression "puVar9 + 0x1ee098" (identifier "puVar9") (+ "+") (number_literal "0x1ee098")) () ")")))) (+ "+") (number_literal "0x3a6c")) () ")")))) (; ";")) (return_statement "return uVar6;" (return "return") (identifier "uVar6") (; ";")) (} "}"))) (expression_statement "pcVar1[8] = '\0';" (assignment_expression "pcVar1[8] = '\0'" (subscript_expression "pcVar1[8]" (identifier "pcVar1") ([ "[") (number_literal "8") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "pcVar1[9] = '\0';" (assignment_expression "pcVar1[9] = '\0'" (subscript_expression "pcVar1[9]" (identifier "pcVar1") ([ "[") (number_literal "9") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "pcVar1[10] = '\0';" (assignment_expression "pcVar1[10] = '\0'" (subscript_expression "pcVar1[10]" (identifier "pcVar1") ([ "[") (number_literal "10") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "pcVar1[0xb] = '\0';" (assignment_expression "pcVar1[0xb] = '\0'" (subscript_expression "pcVar1[0xb]" (identifier "pcVar1") ([ "[") (number_literal "0xb") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "*(int *)(pcVar1 + 4) = iVar2;" (assignment_expression "*(int *)(pcVar1 + 4) = iVar2" (pointer_expression "*(int *)(pcVar1 + 4)" (* "*") (cast_expression "(int *)(pcVar1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar1 + 4)" (( "(") (binary_expression "pcVar1 + 4" (identifier "pcVar1") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "iVar2")) (; ";")) (if_statement "if ((iVar2 == 0) && (pTVar5 = *(Task **)(pcVar1 + 0xc), pTVar5 != (Task *)0x0)) {\n          iVar3 = *(int *)(pTVar5 + 4);\n          if (*(Task **)(pcVar1 + 0x10) == pTVar5) goto LAB_002d3a40;\n          while (*(int *)(pcVar1 + 0xc) = iVar3, iVar3 != 0) {\n            *(undefined4 *)(pTVar5 + 4) = 0;\n            while( true ) {\n              *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n              return_or_queue(this_00,pTVar5,true,apTStack_48);\n              pTVar5 = *(Task **)(pcVar1 + 0xc);\n              if (pTVar5 == (Task *)0x0) goto LAB_002d398c;\n              iVar3 = *(int *)(pTVar5 + 4);\n              if (*(Task **)(pcVar1 + 0x10) != pTVar5) break;\nLAB_002d3a40:\n              if (iVar3 != 0) goto LAB_002d3a94;\n              pcVar1[0xc] = '\0';\n              pcVar1[0xd] = '\0';\n              pcVar1[0xe] = '\0';\n              pcVar1[0xf] = '\0';\n              pcVar1[0x10] = '\0';\n              pcVar1[0x11] = '\0';\n              pcVar1[0x12] = '\0';\n              pcVar1[0x13] = '\0';\n            }\n          }\nLAB_002d3a5c:\n          uVar6 = 0x5a;\n          goto LAB_002d3a60;\n        }" (if "if") (parenthesized_expression "((iVar2 == 0) && (pTVar5 = *(Task **)(pcVar1 + 0xc), pTVar5 != (Task *)0x0))" (( "(") (binary_expression "(iVar2 == 0) && (pTVar5 = *(Task **)(pcVar1 + 0xc), pTVar5 != (Task *)0x0)" (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(pTVar5 = *(Task **)(pcVar1 + 0xc), pTVar5 != (Task *)0x0)" (( "(") (comma_expression "pTVar5 = *(Task **)(pcVar1 + 0xc), pTVar5 != (Task *)0x0" (assignment_expression "pTVar5 = *(Task **)(pcVar1 + 0xc)" (identifier "pTVar5") (= "=") (pointer_expression "*(Task **)(pcVar1 + 0xc)" (* "*") (cast_expression "(Task **)(pcVar1 + 0xc)" (( "(") (type_descriptor "Task **" (type_identifier "Task") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar1 + 0xc)" (( "(") (binary_expression "pcVar1 + 0xc" (identifier "pcVar1") (+ "+") (number_literal "0xc")) () ")"))))) (, ",") (binary_expression "pTVar5 != (Task *)0x0" (identifier "pTVar5") (!= "!=") (cast_expression "(Task *)0x0" (( "(") (type_descriptor "Task *" (type_identifier "Task") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n          iVar3 = *(int *)(pTVar5 + 4);\n          if (*(Task **)(pcVar1 + 0x10) == pTVar5) goto LAB_002d3a40;\n          while (*(int *)(pcVar1 + 0xc) = iVar3, iVar3 != 0) {\n            *(undefined4 *)(pTVar5 + 4) = 0;\n            while( true ) {\n              *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n              return_or_queue(this_00,pTVar5,true,apTStack_48);\n              pTVar5 = *(Task **)(pcVar1 + 0xc);\n              if (pTVar5 == (Task *)0x0) goto LAB_002d398c;\n              iVar3 = *(int *)(pTVar5 + 4);\n              if (*(Task **)(pcVar1 + 0x10) != pTVar5) break;\nLAB_002d3a40:\n              if (iVar3 != 0) goto LAB_002d3a94;\n              pcVar1[0xc] = '\0';\n              pcVar1[0xd] = '\0';\n              pcVar1[0xe] = '\0';\n              pcVar1[0xf] = '\0';\n              pcVar1[0x10] = '\0';\n              pcVar1[0x11] = '\0';\n              pcVar1[0x12] = '\0';\n              pcVar1[0x13] = '\0';\n            }\n          }\nLAB_002d3a5c:\n          uVar6 = 0x5a;\n          goto LAB_002d3a60;\n        }" ({ "{") (expression_statement "iVar3 = *(int *)(pTVar5 + 4);" (assignment_expression "iVar3 = *(int *)(pTVar5 + 4)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(pTVar5 + 4)" (* "*") (cast_expression "(int *)(pTVar5 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pTVar5 + 4)" (( "(") (binary_expression "pTVar5 + 4" (identifier "pTVar5") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (*(Task **)(pcVar1 + 0x10) == pTVar5) goto LAB_002d3a40;" (if "if") (parenthesized_expression "(*(Task **)(pcVar1 + 0x10) == pTVar5)" (( "(") (binary_expression "*(Task **)(pcVar1 + 0x10) == pTVar5" (pointer_expression "*(Task **)(pcVar1 + 0x10)" (* "*") (cast_expression "(Task **)(pcVar1 + 0x10)" (( "(") (type_descriptor "Task **" (type_identifier "Task") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar1 + 0x10)" (( "(") (binary_expression "pcVar1 + 0x10" (identifier "pcVar1") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (identifier "pTVar5")) () ")")) (goto_statement "goto LAB_002d3a40;" (goto "goto") (statement_identifier "LAB_002d3a40") (; ";"))) (while_statement "while (*(int *)(pcVar1 + 0xc) = iVar3, iVar3 != 0) {\n            *(undefined4 *)(pTVar5 + 4) = 0;\n            while( true ) {\n              *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n              return_or_queue(this_00,pTVar5,true,apTStack_48);\n              pTVar5 = *(Task **)(pcVar1 + 0xc);\n              if (pTVar5 == (Task *)0x0) goto LAB_002d398c;\n              iVar3 = *(int *)(pTVar5 + 4);\n              if (*(Task **)(pcVar1 + 0x10) != pTVar5) break;\nLAB_002d3a40:\n              if (iVar3 != 0) goto LAB_002d3a94;\n              pcVar1[0xc] = '\0';\n              pcVar1[0xd] = '\0';\n              pcVar1[0xe] = '\0';\n              pcVar1[0xf] = '\0';\n              pcVar1[0x10] = '\0';\n              pcVar1[0x11] = '\0';\n              pcVar1[0x12] = '\0';\n              pcVar1[0x13] = '\0';\n            }\n          }" (while "while") (parenthesized_expression "(*(int *)(pcVar1 + 0xc) = iVar3, iVar3 != 0)" (( "(") (comma_expression "*(int *)(pcVar1 + 0xc) = iVar3, iVar3 != 0" (assignment_expression "*(int *)(pcVar1 + 0xc) = iVar3" (pointer_expression "*(int *)(pcVar1 + 0xc)" (* "*") (cast_expression "(int *)(pcVar1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar1 + 0xc)" (( "(") (binary_expression "pcVar1 + 0xc" (identifier "pcVar1") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "iVar3")) (, ",") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n            *(undefined4 *)(pTVar5 + 4) = 0;\n            while( true ) {\n              *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n              return_or_queue(this_00,pTVar5,true,apTStack_48);\n              pTVar5 = *(Task **)(pcVar1 + 0xc);\n              if (pTVar5 == (Task *)0x0) goto LAB_002d398c;\n              iVar3 = *(int *)(pTVar5 + 4);\n              if (*(Task **)(pcVar1 + 0x10) != pTVar5) break;\nLAB_002d3a40:\n              if (iVar3 != 0) goto LAB_002d3a94;\n              pcVar1[0xc] = '\0';\n              pcVar1[0xd] = '\0';\n              pcVar1[0xe] = '\0';\n              pcVar1[0xf] = '\0';\n              pcVar1[0x10] = '\0';\n              pcVar1[0x11] = '\0';\n              pcVar1[0x12] = '\0';\n              pcVar1[0x13] = '\0';\n            }\n          }" ({ "{") (expression_statement "*(undefined4 *)(pTVar5 + 4) = 0;" (assignment_expression "*(undefined4 *)(pTVar5 + 4) = 0" (pointer_expression "*(undefined4 *)(pTVar5 + 4)" (* "*") (cast_expression "(undefined4 *)(pTVar5 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pTVar5 + 4)" (( "(") (binary_expression "pTVar5 + 4" (identifier "pTVar5") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (while_statement "while( true ) {\n              *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n              return_or_queue(this_00,pTVar5,true,apTStack_48);\n              pTVar5 = *(Task **)(pcVar1 + 0xc);\n              if (pTVar5 == (Task *)0x0) goto LAB_002d398c;\n              iVar3 = *(int *)(pTVar5 + 4);\n              if (*(Task **)(pcVar1 + 0x10) != pTVar5) break;\nLAB_002d3a40:\n              if (iVar3 != 0) goto LAB_002d3a94;\n              pcVar1[0xc] = '\0';\n              pcVar1[0xd] = '\0';\n              pcVar1[0xe] = '\0';\n              pcVar1[0xf] = '\0';\n              pcVar1[0x10] = '\0';\n              pcVar1[0x11] = '\0';\n              pcVar1[0x12] = '\0';\n              pcVar1[0x13] = '\0';\n            }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n              *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n              return_or_queue(this_00,pTVar5,true,apTStack_48);\n              pTVar5 = *(Task **)(pcVar1 + 0xc);\n              if (pTVar5 == (Task *)0x0) goto LAB_002d398c;\n              iVar3 = *(int *)(pTVar5 + 4);\n              if (*(Task **)(pcVar1 + 0x10) != pTVar5) break;\nLAB_002d3a40:\n              if (iVar3 != 0) goto LAB_002d3a94;\n              pcVar1[0xc] = '\0';\n              pcVar1[0xd] = '\0';\n              pcVar1[0xe] = '\0';\n              pcVar1[0xf] = '\0';\n              pcVar1[0x10] = '\0';\n              pcVar1[0x11] = '\0';\n              pcVar1[0x12] = '\0';\n              pcVar1[0x13] = '\0';\n            }" ({ "{") (expression_statement "*(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;" (assignment_expression "*(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1" (pointer_expression "*(int *)(this_00 + 0x18)" (* "*") (cast_expression "(int *)(this_00 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this_00 + 0x18)" (( "(") (binary_expression "this_00 + 0x18" (identifier "this_00") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (binary_expression "*(int *)(this_00 + 0x18) + -1" (pointer_expression "*(int *)(this_00 + 0x18)" (* "*") (cast_expression "(int *)(this_00 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this_00 + 0x18)" (( "(") (binary_expression "this_00 + 0x18" (identifier "this_00") (+ "+") (number_literal "0x18")) () ")")))) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "return_or_queue(this_00,pTVar5,true,apTStack_48);" (call_expression "return_or_queue(this_00,pTVar5,true,apTStack_48)" (identifier "return_or_queue") (argument_list "(this_00,pTVar5,true,apTStack_48)" (( "(") (identifier "this_00") (, ",") (identifier "pTVar5") (, ",") (true "true") (, ",") (identifier "apTStack_48") () ")"))) (; ";")) (expression_statement "pTVar5 = *(Task **)(pcVar1 + 0xc);" (assignment_expression "pTVar5 = *(Task **)(pcVar1 + 0xc)" (identifier "pTVar5") (= "=") (pointer_expression "*(Task **)(pcVar1 + 0xc)" (* "*") (cast_expression "(Task **)(pcVar1 + 0xc)" (( "(") (type_descriptor "Task **" (type_identifier "Task") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar1 + 0xc)" (( "(") (binary_expression "pcVar1 + 0xc" (identifier "pcVar1") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (pTVar5 == (Task *)0x0) goto LAB_002d398c;" (if "if") (parenthesized_expression "(pTVar5 == (Task *)0x0)" (( "(") (binary_expression "pTVar5 == (Task *)0x0" (identifier "pTVar5") (== "==") (cast_expression "(Task *)0x0" (( "(") (type_descriptor "Task *" (type_identifier "Task") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_002d398c;" (goto "goto") (statement_identifier "LAB_002d398c") (; ";"))) (expression_statement "iVar3 = *(int *)(pTVar5 + 4);" (assignment_expression "iVar3 = *(int *)(pTVar5 + 4)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(pTVar5 + 4)" (* "*") (cast_expression "(int *)(pTVar5 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pTVar5 + 4)" (( "(") (binary_expression "pTVar5 + 4" (identifier "pTVar5") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (*(Task **)(pcVar1 + 0x10) != pTVar5) break;" (if "if") (parenthesized_expression "(*(Task **)(pcVar1 + 0x10) != pTVar5)" (( "(") (binary_expression "*(Task **)(pcVar1 + 0x10) != pTVar5" (pointer_expression "*(Task **)(pcVar1 + 0x10)" (* "*") (cast_expression "(Task **)(pcVar1 + 0x10)" (( "(") (type_descriptor "Task **" (type_identifier "Task") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar1 + 0x10)" (( "(") (binary_expression "pcVar1 + 0x10" (identifier "pcVar1") (+ "+") (number_literal "0x10")) () ")")))) (!= "!=") (identifier "pTVar5")) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_002d3a40:\n              if (iVar3 != 0) goto LAB_002d3a94;" (statement_identifier "LAB_002d3a40") (: ":") (if_statement "if (iVar3 != 0) goto LAB_002d3a94;" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_002d3a94;" (goto "goto") (statement_identifier "LAB_002d3a94") (; ";")))) (expression_statement "pcVar1[0xc] = '\0';" (assignment_expression "pcVar1[0xc] = '\0'" (subscript_expression "pcVar1[0xc]" (identifier "pcVar1") ([ "[") (number_literal "0xc") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "pcVar1[0xd] = '\0';" (assignment_expression "pcVar1[0xd] = '\0'" (subscript_expression "pcVar1[0xd]" (identifier "pcVar1") ([ "[") (number_literal "0xd") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "pcVar1[0xe] = '\0';" (assignment_expression "pcVar1[0xe] = '\0'" (subscript_expression "pcVar1[0xe]" (identifier "pcVar1") ([ "[") (number_literal "0xe") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "pcVar1[0xf] = '\0';" (assignment_expression "pcVar1[0xf] = '\0'" (subscript_expression "pcVar1[0xf]" (identifier "pcVar1") ([ "[") (number_literal "0xf") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "pcVar1[0x10] = '\0';" (assignment_expression "pcVar1[0x10] = '\0'" (subscript_expression "pcVar1[0x10]" (identifier "pcVar1") ([ "[") (number_literal "0x10") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "pcVar1[0x11] = '\0';" (assignment_expression "pcVar1[0x11] = '\0'" (subscript_expression "pcVar1[0x11]" (identifier "pcVar1") ([ "[") (number_literal "0x11") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "pcVar1[0x12] = '\0';" (assignment_expression "pcVar1[0x12] = '\0'" (subscript_expression "pcVar1[0x12]" (identifier "pcVar1") ([ "[") (number_literal "0x12") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "pcVar1[0x13] = '\0';" (assignment_expression "pcVar1[0x13] = '\0'" (subscript_expression "pcVar1[0x13]" (identifier "pcVar1") ([ "[") (number_literal "0x13") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_002d3a5c:\n          uVar6 = 0x5a;" (statement_identifier "LAB_002d3a5c") (: ":") (expression_statement "uVar6 = 0x5a;" (assignment_expression "uVar6 = 0x5a" (identifier "uVar6") (= "=") (number_literal "0x5a")) (; ";"))) (goto_statement "goto LAB_002d3a60;" (goto "goto") (statement_identifier "LAB_002d3a60") (; ";")) (} "}"))) (expression_statement "piVar8 = piVar8 + 1;" (assignment_expression "piVar8 = piVar8 + 1" (identifier "piVar8") (= "=") (binary_expression "piVar8 + 1" (identifier "piVar8") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (piVar8 == piVar7 + iVar3 + 1) {\n          return apTStack_48[0];\n        }" (if "if") (parenthesized_expression "(piVar8 == piVar7 + iVar3 + 1)" (( "(") (binary_expression "piVar8 == piVar7 + iVar3 + 1" (identifier "piVar8") (== "==") (binary_expression "piVar7 + iVar3 + 1" (binary_expression "piVar7 + iVar3" (identifier "piVar7") (+ "+") (identifier "iVar3")) (+ "+") (number_literal "1"))) () ")")) (compound_statement "{\n          return apTStack_48[0];\n        }" ({ "{") (return_statement "return apTStack_48[0];" (return "return") (subscript_expression "apTStack_48[0]" (identifier "apTStack_48") ([ "[") (number_literal "0") (] "]")) (; ";")) (} "}"))) (} "}"))) (if_statement "if (iVar4 != *(int *)(pcVar1 + 8)) {\n        uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                          (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0x84,\n                           *(int *)(puVar9 + 0x1ee098) + 0x3a5c);\n        return uVar6;\n      }" (if "if") (parenthesized_expression "(iVar4 != *(int *)(pcVar1 + 8))" (( "(") (binary_expression "iVar4 != *(int *)(pcVar1 + 8)" (identifier "iVar4") (!= "!=") (pointer_expression "*(int *)(pcVar1 + 8)" (* "*") (cast_expression "(int *)(pcVar1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar1 + 8)" (( "(") (binary_expression "pcVar1 + 8" (identifier "pcVar1") (+ "+") (number_literal "8")) () ")"))))) () ")")) (compound_statement "{\n        uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                          (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0x84,\n                           *(int *)(puVar9 + 0x1ee098) + 0x3a5c);\n        return uVar6;\n      }" ({ "{") (expression_statement "uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                          (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0x84,\n                           *(int *)(puVar9 + 0x1ee098) + 0x3a5c);" (assignment_expression "uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                          (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0x84,\n                           *(int *)(puVar9 + 0x1ee098) + 0x3a5c)" (identifier "uVar6") (= "=") (call_expression "(**(code **)(puVar9 + 0x1ee1ac))\n                          (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0x84,\n                           *(int *)(puVar9 + 0x1ee098) + 0x3a5c)" (parenthesized_expression "(**(code **)(puVar9 + 0x1ee1ac))" (( "(") (pointer_expression "**(code **)(puVar9 + 0x1ee1ac)" (* "*") (pointer_expression "*(code **)(puVar9 + 0x1ee1ac)" (* "*") (cast_expression "(code **)(puVar9 + 0x1ee1ac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + 0x1ee1ac)" (( "(") (binary_expression "puVar9 + 0x1ee1ac" (identifier "puVar9") (+ "+") (number_literal "0x1ee1ac")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0x84,\n                           *(int *)(puVar9 + 0x1ee098) + 0x3a5c)" (( "(") (binary_expression "*(int *)(puVar9 + 0x1ed9f8) + -0x7f8" (pointer_expression "*(int *)(puVar9 + 0x1ed9f8)" (* "*") (cast_expression "(int *)(puVar9 + 0x1ed9f8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + 0x1ed9f8)" (( "(") (binary_expression "puVar9 + 0x1ed9f8" (identifier "puVar9") (+ "+") (number_literal "0x1ed9f8")) () ")")))) (+ "+") (number_literal "-0x7f8")) (, ",") (number_literal "0x84") (, ",") (binary_expression "*(int *)(puVar9 + 0x1ee098) + 0x3a5c" (pointer_expression "*(int *)(puVar9 + 0x1ee098)" (* "*") (cast_expression "(int *)(puVar9 + 0x1ee098)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + 0x1ee098)" (( "(") (binary_expression "puVar9 + 0x1ee098" (identifier "puVar9") (+ "+") (number_literal "0x1ee098")) () ")")))) (+ "+") (number_literal "0x3a5c")) () ")")))) (; ";")) (return_statement "return uVar6;" (return "return") (identifier "uVar6") (; ";")) (} "}"))) (expression_statement "pcVar1[8] = '\0';" (assignment_expression "pcVar1[8] = '\0'" (subscript_expression "pcVar1[8]" (identifier "pcVar1") ([ "[") (number_literal "8") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "pcVar1[9] = '\0';" (assignment_expression "pcVar1[9] = '\0'" (subscript_expression "pcVar1[9]" (identifier "pcVar1") ([ "[") (number_literal "9") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "pcVar1[10] = '\0';" (assignment_expression "pcVar1[10] = '\0'" (subscript_expression "pcVar1[10]" (identifier "pcVar1") ([ "[") (number_literal "10") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "pcVar1[0xb] = '\0';" (assignment_expression "pcVar1[0xb] = '\0'" (subscript_expression "pcVar1[0xb]" (identifier "pcVar1") ([ "[") (number_literal "0xb") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (do_statement "do {\n        pTVar5 = *(Task **)(pcVar1 + 0xc);\n        if (pTVar5 == (Task *)0x0) break;\n        iVar3 = *(int *)(pTVar5 + 4);\n        if (pTVar5 == *(Task **)(pcVar1 + 0x10)) {\n          if (iVar3 != 0) goto LAB_002d3a94;\n          pcVar1[0xc] = '\0';\n          pcVar1[0xd] = '\0';\n          pcVar1[0xe] = '\0';\n          pcVar1[0xf] = '\0';\n          pcVar1[0x10] = '\0';\n          pcVar1[0x11] = '\0';\n          pcVar1[0x12] = '\0';\n          pcVar1[0x13] = '\0';\n        }\n        else {\n          *(int *)(pcVar1 + 0xc) = iVar3;\n          if (iVar3 == 0) goto LAB_002d3a5c;\n          *(undefined4 *)(pTVar5 + 4) = 0;\n        }\n        *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n        iVar3 = return_or_queue(this_00,pTVar5,false,apTStack_48);\n      } while (iVar3 == 0);" (do "do") (compound_statement "{\n        pTVar5 = *(Task **)(pcVar1 + 0xc);\n        if (pTVar5 == (Task *)0x0) break;\n        iVar3 = *(int *)(pTVar5 + 4);\n        if (pTVar5 == *(Task **)(pcVar1 + 0x10)) {\n          if (iVar3 != 0) goto LAB_002d3a94;\n          pcVar1[0xc] = '\0';\n          pcVar1[0xd] = '\0';\n          pcVar1[0xe] = '\0';\n          pcVar1[0xf] = '\0';\n          pcVar1[0x10] = '\0';\n          pcVar1[0x11] = '\0';\n          pcVar1[0x12] = '\0';\n          pcVar1[0x13] = '\0';\n        }\n        else {\n          *(int *)(pcVar1 + 0xc) = iVar3;\n          if (iVar3 == 0) goto LAB_002d3a5c;\n          *(undefined4 *)(pTVar5 + 4) = 0;\n        }\n        *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;\n        iVar3 = return_or_queue(this_00,pTVar5,false,apTStack_48);\n      }" ({ "{") (expression_statement "pTVar5 = *(Task **)(pcVar1 + 0xc);" (assignment_expression "pTVar5 = *(Task **)(pcVar1 + 0xc)" (identifier "pTVar5") (= "=") (pointer_expression "*(Task **)(pcVar1 + 0xc)" (* "*") (cast_expression "(Task **)(pcVar1 + 0xc)" (( "(") (type_descriptor "Task **" (type_identifier "Task") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar1 + 0xc)" (( "(") (binary_expression "pcVar1 + 0xc" (identifier "pcVar1") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (pTVar5 == (Task *)0x0) break;" (if "if") (parenthesized_expression "(pTVar5 == (Task *)0x0)" (( "(") (binary_expression "pTVar5 == (Task *)0x0" (identifier "pTVar5") (== "==") (cast_expression "(Task *)0x0" (( "(") (type_descriptor "Task *" (type_identifier "Task") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar3 = *(int *)(pTVar5 + 4);" (assignment_expression "iVar3 = *(int *)(pTVar5 + 4)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(pTVar5 + 4)" (* "*") (cast_expression "(int *)(pTVar5 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pTVar5 + 4)" (( "(") (binary_expression "pTVar5 + 4" (identifier "pTVar5") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (pTVar5 == *(Task **)(pcVar1 + 0x10)) {\n          if (iVar3 != 0) goto LAB_002d3a94;\n          pcVar1[0xc] = '\0';\n          pcVar1[0xd] = '\0';\n          pcVar1[0xe] = '\0';\n          pcVar1[0xf] = '\0';\n          pcVar1[0x10] = '\0';\n          pcVar1[0x11] = '\0';\n          pcVar1[0x12] = '\0';\n          pcVar1[0x13] = '\0';\n        }\n        else {\n          *(int *)(pcVar1 + 0xc) = iVar3;\n          if (iVar3 == 0) goto LAB_002d3a5c;\n          *(undefined4 *)(pTVar5 + 4) = 0;\n        }" (if "if") (parenthesized_expression "(pTVar5 == *(Task **)(pcVar1 + 0x10))" (( "(") (binary_expression "pTVar5 == *(Task **)(pcVar1 + 0x10)" (identifier "pTVar5") (== "==") (pointer_expression "*(Task **)(pcVar1 + 0x10)" (* "*") (cast_expression "(Task **)(pcVar1 + 0x10)" (( "(") (type_descriptor "Task **" (type_identifier "Task") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar1 + 0x10)" (( "(") (binary_expression "pcVar1 + 0x10" (identifier "pcVar1") (+ "+") (number_literal "0x10")) () ")"))))) () ")")) (compound_statement "{\n          if (iVar3 != 0) goto LAB_002d3a94;\n          pcVar1[0xc] = '\0';\n          pcVar1[0xd] = '\0';\n          pcVar1[0xe] = '\0';\n          pcVar1[0xf] = '\0';\n          pcVar1[0x10] = '\0';\n          pcVar1[0x11] = '\0';\n          pcVar1[0x12] = '\0';\n          pcVar1[0x13] = '\0';\n        }" ({ "{") (if_statement "if (iVar3 != 0) goto LAB_002d3a94;" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_002d3a94;" (goto "goto") (statement_identifier "LAB_002d3a94") (; ";"))) (expression_statement "pcVar1[0xc] = '\0';" (assignment_expression "pcVar1[0xc] = '\0'" (subscript_expression "pcVar1[0xc]" (identifier "pcVar1") ([ "[") (number_literal "0xc") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "pcVar1[0xd] = '\0';" (assignment_expression "pcVar1[0xd] = '\0'" (subscript_expression "pcVar1[0xd]" (identifier "pcVar1") ([ "[") (number_literal "0xd") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "pcVar1[0xe] = '\0';" (assignment_expression "pcVar1[0xe] = '\0'" (subscript_expression "pcVar1[0xe]" (identifier "pcVar1") ([ "[") (number_literal "0xe") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "pcVar1[0xf] = '\0';" (assignment_expression "pcVar1[0xf] = '\0'" (subscript_expression "pcVar1[0xf]" (identifier "pcVar1") ([ "[") (number_literal "0xf") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "pcVar1[0x10] = '\0';" (assignment_expression "pcVar1[0x10] = '\0'" (subscript_expression "pcVar1[0x10]" (identifier "pcVar1") ([ "[") (number_literal "0x10") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "pcVar1[0x11] = '\0';" (assignment_expression "pcVar1[0x11] = '\0'" (subscript_expression "pcVar1[0x11]" (identifier "pcVar1") ([ "[") (number_literal "0x11") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "pcVar1[0x12] = '\0';" (assignment_expression "pcVar1[0x12] = '\0'" (subscript_expression "pcVar1[0x12]" (identifier "pcVar1") ([ "[") (number_literal "0x12") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "pcVar1[0x13] = '\0';" (assignment_expression "pcVar1[0x13] = '\0'" (subscript_expression "pcVar1[0x13]" (identifier "pcVar1") ([ "[") (number_literal "0x13") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (} "}")) (else_clause "else {\n          *(int *)(pcVar1 + 0xc) = iVar3;\n          if (iVar3 == 0) goto LAB_002d3a5c;\n          *(undefined4 *)(pTVar5 + 4) = 0;\n        }" (else "else") (compound_statement "{\n          *(int *)(pcVar1 + 0xc) = iVar3;\n          if (iVar3 == 0) goto LAB_002d3a5c;\n          *(undefined4 *)(pTVar5 + 4) = 0;\n        }" ({ "{") (expression_statement "*(int *)(pcVar1 + 0xc) = iVar3;" (assignment_expression "*(int *)(pcVar1 + 0xc) = iVar3" (pointer_expression "*(int *)(pcVar1 + 0xc)" (* "*") (cast_expression "(int *)(pcVar1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar1 + 0xc)" (( "(") (binary_expression "pcVar1 + 0xc" (identifier "pcVar1") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "iVar3")) (; ";")) (if_statement "if (iVar3 == 0) goto LAB_002d3a5c;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_002d3a5c;" (goto "goto") (statement_identifier "LAB_002d3a5c") (; ";"))) (expression_statement "*(undefined4 *)(pTVar5 + 4) = 0;" (assignment_expression "*(undefined4 *)(pTVar5 + 4) = 0" (pointer_expression "*(undefined4 *)(pTVar5 + 4)" (* "*") (cast_expression "(undefined4 *)(pTVar5 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pTVar5 + 4)" (( "(") (binary_expression "pTVar5 + 4" (identifier "pTVar5") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "*(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;" (assignment_expression "*(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1" (pointer_expression "*(int *)(this_00 + 0x18)" (* "*") (cast_expression "(int *)(this_00 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this_00 + 0x18)" (( "(") (binary_expression "this_00 + 0x18" (identifier "this_00") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (binary_expression "*(int *)(this_00 + 0x18) + -1" (pointer_expression "*(int *)(this_00 + 0x18)" (* "*") (cast_expression "(int *)(this_00 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(this_00 + 0x18)" (( "(") (binary_expression "this_00 + 0x18" (identifier "this_00") (+ "+") (number_literal "0x18")) () ")")))) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "iVar3 = return_or_queue(this_00,pTVar5,false,apTStack_48);" (assignment_expression "iVar3 = return_or_queue(this_00,pTVar5,false,apTStack_48)" (identifier "iVar3") (= "=") (call_expression "return_or_queue(this_00,pTVar5,false,apTStack_48)" (identifier "return_or_queue") (argument_list "(this_00,pTVar5,false,apTStack_48)" (( "(") (identifier "this_00") (, ",") (identifier "pTVar5") (, ",") (false "false") (, ",") (identifier "apTStack_48") () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (; ";")) (labeled_statement "LAB_002d398c:\n      iVar3 = *piVar7;" (statement_identifier "LAB_002d398c") (: ":") (expression_statement "iVar3 = *piVar7;" (assignment_expression "iVar3 = *piVar7" (identifier "iVar3") (= "=") (pointer_expression "*piVar7" (* "*") (identifier "piVar7"))) (; ";"))) (expression_statement "piVar8 = piVar8 + 1;" (assignment_expression "piVar8 = piVar8 + 1" (identifier "piVar8") (= "=") (binary_expression "piVar8 + 1" (identifier "piVar8") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar8 != piVar7 + iVar3 + 1)" (( "(") (binary_expression "piVar8 != piVar7 + iVar3 + 1" (identifier "piVar8") (!= "!=") (binary_expression "piVar7 + iVar3 + 1" (binary_expression "piVar7 + iVar3" (identifier "piVar7") (+ "+") (identifier "iVar3")) (+ "+") (number_literal "1"))) () ")")) (; ";")) (} "}")))) (return_statement "return apTStack_48[0];" (return "return") (subscript_expression "apTStack_48[0]" (identifier "apTStack_48") ([ "[") (number_literal "0") (] "]")) (; ";")) (labeled_statement "LAB_002d3a94:\n  uVar6 = 0x53;" (statement_identifier "LAB_002d3a94") (: ":") (expression_statement "uVar6 = 0x53;" (assignment_expression "uVar6 = 0x53" (identifier "uVar6") (= "=") (number_literal "0x53")) (; ";"))) (labeled_statement "LAB_002d3a60:\n  uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                    (*(int *)(puVar9 + 0x1ee098) + 0x39bc,uVar6,*(int *)(puVar9 + 0x1ee098) + 0x3aa0\n                    );" (statement_identifier "LAB_002d3a60") (: ":") (expression_statement "uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                    (*(int *)(puVar9 + 0x1ee098) + 0x39bc,uVar6,*(int *)(puVar9 + 0x1ee098) + 0x3aa0\n                    );" (assignment_expression "uVar6 = (**(code **)(puVar9 + 0x1ee1ac))\n                    (*(int *)(puVar9 + 0x1ee098) + 0x39bc,uVar6,*(int *)(puVar9 + 0x1ee098) + 0x3aa0\n                    )" (identifier "uVar6") (= "=") (call_expression "(**(code **)(puVar9 + 0x1ee1ac))\n                    (*(int *)(puVar9 + 0x1ee098) + 0x39bc,uVar6,*(int *)(puVar9 + 0x1ee098) + 0x3aa0\n                    )" (parenthesized_expression "(**(code **)(puVar9 + 0x1ee1ac))" (( "(") (pointer_expression "**(code **)(puVar9 + 0x1ee1ac)" (* "*") (pointer_expression "*(code **)(puVar9 + 0x1ee1ac)" (* "*") (cast_expression "(code **)(puVar9 + 0x1ee1ac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + 0x1ee1ac)" (( "(") (binary_expression "puVar9 + 0x1ee1ac" (identifier "puVar9") (+ "+") (number_literal "0x1ee1ac")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar9 + 0x1ee098) + 0x39bc,uVar6,*(int *)(puVar9 + 0x1ee098) + 0x3aa0\n                    )" (( "(") (binary_expression "*(int *)(puVar9 + 0x1ee098) + 0x39bc" (pointer_expression "*(int *)(puVar9 + 0x1ee098)" (* "*") (cast_expression "(int *)(puVar9 + 0x1ee098)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + 0x1ee098)" (( "(") (binary_expression "puVar9 + 0x1ee098" (identifier "puVar9") (+ "+") (number_literal "0x1ee098")) () ")")))) (+ "+") (number_literal "0x39bc")) (, ",") (identifier "uVar6") (, ",") (binary_expression "*(int *)(puVar9 + 0x1ee098) + 0x3aa0" (pointer_expression "*(int *)(puVar9 + 0x1ee098)" (* "*") (cast_expression "(int *)(puVar9 + 0x1ee098)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + 0x1ee098)" (( "(") (binary_expression "puVar9 + 0x1ee098" (identifier "puVar9") (+ "+") (number_literal "0x1ee098")) () ")")))) (+ "+") (number_literal "0x3aa0")) () ")")))) (; ";"))) (return_statement "return uVar6;" (return "return") (identifier "uVar6") (; ";")) (} "}")))
(translation_unit (function_definition type: (type_identifier) (ms_call_modifier) (ERROR (identifier) (identifier)) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))) body: (compound_statement (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (array_declarator declarator: (identifier) size: (number_literal)))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (if_statement condition: (parenthesized_expression (binary_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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator 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: (char_literal (escape_sequence)))) consequence: (compound_statement (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: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_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 (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: (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: (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: (number_literal))))) right: (identifier))) (labeled_statement label: (statement_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: (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))))) (return_statement (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)) 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))))) right: (number_literal))) consequence: (compound_statement (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: (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))))) 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: (number_literal))))) right: (identifier))) (goto_statement label: (statement_identifier)))) (goto_statement label: (statement_identifier))))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))))) arguments: (argument_list (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))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (number_literal)))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (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)) 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: (identifier) right: (number_literal))))) right: (number_literal)))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (return_statement (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)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (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: (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: (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: (number_literal))))) right: (identifier))) (goto_statement label: (statement_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: (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))))) right: (number_literal))) consequence: (compound_statement (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: (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))))) 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: (number_literal))))) right: (identifier))) (goto_statement label: (statement_identifier)))) (goto_statement label: (statement_identifier)))) (goto_statement label: (statement_identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (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: (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: (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: (number_literal))))) right: (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: (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: (number_literal))))))) arguments: (argument_list (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))))))))) (return_statement (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)) 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))))) right: (number_literal))) consequence: (compound_statement (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: (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))))) 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: (number_literal))))) right: (identifier))) (goto_statement label: (statement_identifier)))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_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 (binary_expression left: (identifier) right: (number_literal)) (number_literal) (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 (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_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 (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (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: (pointer_expression argument: (identifier)))) (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence))))) body: (compound_statement (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)))) (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: (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)))))) (return_statement (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) (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))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (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)))))) right: (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: (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))))))) (if_statement condition: (parenthesized_expression (binary_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: (identifier))) consequence: (goto_statement label: (statement_identifier))) (while_statement condition: (parenthesized_expression (comma_expression left: (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)) right: (binary_expression left: (identifier) right: (number_literal)))) body: (compound_statement (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))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (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: (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: (identifier) arguments: (argument_list (identifier) (identifier) (true) (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: (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: (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))))))) (if_statement condition: (parenthesized_expression (binary_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: (identifier))) consequence: (break_statement)) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))) consequence: (compound_statement (return_statement (subscript_expression argument: (identifier) index: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_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))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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)))))) (return_statement (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) (do_statement body: (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: (identifier) 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: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_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))))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (char_literal (escape_sequence))))) alternative: (else_clause (compound_statement (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))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_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: (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: (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: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (false) (identifier)))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (labeled_statement label: (statement_identifier) (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))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))))))) (return_statement (subscript_expression argument: (identifier) index: (number_literal))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) 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 (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) (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))))))) (return_statement (identifier)))))

/* gold::Workqueue::MASKED(gold::Task*, bool, gold::Task**) */

undefined4 __thiscall
gold::Workqueue::MASKED(Workqueue *this,Task *param_1,bool param_2,Task **param_3)

{
  char *pcVar1;
  int iVar2;
  int iVar3;
  Workqueue *this_00;
  int iVar4;
  Task *pTVar5;
  undefined4 uVar6;
  undefined3 in_register_00000018;
  int *piVar7;
  int *piVar8;
  undefined *puVar9;
  Task *apTStack_48 [2];
  Workqueue *pWStack_40;
  
  if (*(code **)(*(int *)param_1 + 8) == (code *)PTR_is_runnable_004c4b34) {
    pcVar1 = *(char **)(param_1 + 0x28);
    if (*pcVar1 != '\0') {
      if (*(int *)(pcVar1 + 4) < 1) goto LAB_002d3724;
LAB_002d36ac:
      if (*(int *)(param_1 + 4) == 0) {
        if (*(int *)(pcVar1 + 0xc) == 0) {
          *(Task **)(pcVar1 + 0xc) = param_1;
          *(Task **)(pcVar1 + 0x10) = param_1;
LAB_002d36dc:
          *(int *)(this + 0x18) = *(int *)(this + 0x18) + 1;
          return 0;
        }
        if (*(int *)(*(int *)(pcVar1 + 0x10) + 4) == 0) {
          *(Task **)(*(int *)(pcVar1 + 0x10) + 4) = param_1;
          *(Task **)(pcVar1 + 0x10) = param_1;
          goto LAB_002d36dc;
        }
        goto LAB_002d386c;
      }
      goto LAB_002d3834;
    }
  }
  else {
    pcVar1 = (char *)(**(code **)(*(int *)param_1 + 8))(param_1);
    if (pcVar1 != (char *)0x0) goto LAB_002d36ac;
LAB_002d3724:
    if (*param_3 == (Task *)0x0) {
      if (((CONCAT31(in_register_00000018,param_2) == 0) || (param_1[0x20] != (Task)0x0)) ||
         ((*(int *)(this + 4) == 0 && (*(int *)(this + 0xc) == 0)))) {
        *param_3 = param_1;
        return 1;
      }
      iVar3 = *(int *)(param_1 + 4);
    }
    else {
      iVar3 = *(int *)(param_1 + 4);
      if (param_1[0x20] != (Task)0x0) {
        if (iVar3 == 0) {
          if (*(int *)(this + 4) == 0) {
            *(Task **)(this + 4) = param_1;
            *(Task **)(this + 8) = param_1;
            goto LAB_002d3768;
          }
          if (*(int *)(*(int *)(this + 8) + 4) == 0) {
            *(Task **)(*(int *)(this + 8) + 4) = param_1;
            *(Task **)(this + 8) = param_1;
            goto LAB_002d3768;
          }
          goto LAB_002d386c;
        }
        goto LAB_002d3834;
      }
    }
    if (iVar3 == 0) {
      if (*(int *)(this + 0xc) == 0) {
        *(Task **)(this + 0xc) = param_1;
        *(Task **)(this + 0x10) = param_1;
LAB_002d3768:
        (**(code **)(**(int **)(this + 0x20) + 0xc))(*(int **)(this + 0x20));
        return 0;
      }
      if (*(int *)(*(int *)(this + 0x10) + 4) == 0) {
        *(Task **)(*(int *)(this + 0x10) + 4) = param_1;
        *(Task **)(this + 0x10) = param_1;
        goto LAB_002d3768;
      }
      goto LAB_002d386c;
    }
LAB_002d3834:
    (*(code *)PTR_do_gold_unreachable_004c1a30)
              (PTR_s_in_a_linker_script_004c191c + 0x39bc,0x29,
               PTR_s_in_a_linker_script_004c191c + 0x3aac);
  }
  (*(code *)PTR_do_gold_unreachable_004c1a30)
            (PTR_s_ral_options14Struct_no_crefE_004c127c + -0x7f8,0xab,
             PTR_s_in_a_linker_script_004c191c + 0x3ad4);
LAB_002d386c:
  iVar4 = 0x5a;
  piVar7 = (int *)(PTR_s_in_a_linker_script_004c191c + 0x3ab8);
  this_00 = (Workqueue *)(PTR_s__s_004c1a50 + 0x970);
  puVar9 = PTR_do_gold_unreachable_004c1a30;
  (*(code *)PTR_do_gold_unreachable_004c1a30)();
  iVar3 = *piVar7;
  piVar8 = piVar7 + 1;
  apTStack_48[0] = (Task *)0x0;
  if (piVar8 == piVar7 + iVar3 + 1) {
    apTStack_48[0] = (Task *)0x0;
  }
  else {
    pWStack_40 = this;
    do {
      while (pcVar1 = (char *)*piVar8, *pcVar1 != '\0') {
        iVar2 = *(int *)(pcVar1 + 4) + -1;
        if (*(int *)(pcVar1 + 4) < 1) {
          uVar6 = (**(code **)(puVar9 + 0x1ee1ac))
                            (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0xa1,
                             *(int *)(puVar9 + 0x1ee098) + 0x3a6c);
          return uVar6;
        }
        pcVar1[8] = '\0';
        pcVar1[9] = '\0';
        pcVar1[10] = '\0';
        pcVar1[0xb] = '\0';
        *(int *)(pcVar1 + 4) = iVar2;
        if ((iVar2 == 0) && (pTVar5 = *(Task **)(pcVar1 + 0xc), pTVar5 != (Task *)0x0)) {
          iVar3 = *(int *)(pTVar5 + 4);
          if (*(Task **)(pcVar1 + 0x10) == pTVar5) goto LAB_002d3a40;
          while (*(int *)(pcVar1 + 0xc) = iVar3, iVar3 != 0) {
            *(undefined4 *)(pTVar5 + 4) = 0;
            while( true ) {
              *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;
              MASKED(this_00,pTVar5,true,apTStack_48);
              pTVar5 = *(Task **)(pcVar1 + 0xc);
              if (pTVar5 == (Task *)0x0) goto LAB_002d398c;
              iVar3 = *(int *)(pTVar5 + 4);
              if (*(Task **)(pcVar1 + 0x10) != pTVar5) break;
LAB_002d3a40:
              if (iVar3 != 0) goto LAB_002d3a94;
              pcVar1[0xc] = '\0';
              pcVar1[0xd] = '\0';
              pcVar1[0xe] = '\0';
              pcVar1[0xf] = '\0';
              pcVar1[0x10] = '\0';
              pcVar1[0x11] = '\0';
              pcVar1[0x12] = '\0';
              pcVar1[0x13] = '\0';
            }
          }
LAB_002d3a5c:
          uVar6 = 0x5a;
          goto LAB_002d3a60;
        }
        piVar8 = piVar8 + 1;
        if (piVar8 == piVar7 + iVar3 + 1) {
          return apTStack_48[0];
        }
      }
      if (iVar4 != *(int *)(pcVar1 + 8)) {
        uVar6 = (**(code **)(puVar9 + 0x1ee1ac))
                          (*(int *)(puVar9 + 0x1ed9f8) + -0x7f8,0x84,
                           *(int *)(puVar9 + 0x1ee098) + 0x3a5c);
        return uVar6;
      }
      pcVar1[8] = '\0';
      pcVar1[9] = '\0';
      pcVar1[10] = '\0';
      pcVar1[0xb] = '\0';
      do {
        pTVar5 = *(Task **)(pcVar1 + 0xc);
        if (pTVar5 == (Task *)0x0) break;
        iVar3 = *(int *)(pTVar5 + 4);
        if (pTVar5 == *(Task **)(pcVar1 + 0x10)) {
          if (iVar3 != 0) goto LAB_002d3a94;
          pcVar1[0xc] = '\0';
          pcVar1[0xd] = '\0';
          pcVar1[0xe] = '\0';
          pcVar1[0xf] = '\0';
          pcVar1[0x10] = '\0';
          pcVar1[0x11] = '\0';
          pcVar1[0x12] = '\0';
          pcVar1[0x13] = '\0';
        }
        else {
          *(int *)(pcVar1 + 0xc) = iVar3;
          if (iVar3 == 0) goto LAB_002d3a5c;
          *(undefined4 *)(pTVar5 + 4) = 0;
        }
        *(int *)(this_00 + 0x18) = *(int *)(this_00 + 0x18) + -1;
        iVar3 = MASKED(this_00,pTVar5,false,apTStack_48);
      } while (iVar3 == 0);
LAB_002d398c:
      iVar3 = *piVar7;
      piVar8 = piVar8 + 1;
    } while (piVar8 != piVar7 + iVar3 + 1);
  }
  return apTStack_48[0];
LAB_002d3a94:
  uVar6 = 0x53;
LAB_002d3a60:
  uVar6 = (**(code **)(puVar9 + 0x1ee1ac))
                    (*(int *)(puVar9 + 0x1ee098) + 0x39bc,uVar6,*(int *)(puVar9 + 0x1ee098) + 0x3aa0
                    );
  return uVar6;
}

