
/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* DWARF original prototype: bool find_and_run_task(Workqueue * this, int thread_number) */

bool __thiscall gold::Workqueue::find_and_run_task(Workqueue *this,int thread_number)

{
  Lock_impl *pLVar1;
  Task *pTVar2;
  int *piVar3;
  undefined **ppuVar4;
  size_type sVar5;
  _func_int_varargs **pp_Var6;
  _func_int_varargs *p_Var7;
  code *pcVar8;
  undefined4 *puVar9;
  Task *pTVar10;
  pointer pcVar11;
  size_t sVar12;
  pointer pcVar13;
  _Alloc_hider _Var14;
  pointer *ppcVar15;
  pointer local_cc;
  size_type *local_c8;
  int local_c4;
  int local_c0;
  int local_bc;
  undefined4 local_b8;
  int local_b4;
  pointer local_b0;
  undefined **local_ac;
  long *local_a8;
  undefined **local_a4;
  Task_locker *local_a0;
  Timer *local_9c;
  Task *local_98;
  undefined **local_94;
  undefined **local_90;
  int local_84;
  int local_80;
  int local_7c;
  Task_locker tl;
  _Alloc_hider local_64;
  size_type local_60;
  size_type local_5c [4];
  Timer timer;
  
  local_90 = &_GLOBAL_OFFSET_TABLE_;
  tl.count_ = 0;
  pLVar1 = (this->lock_).lock_;
  (*pLVar1->_vptr_Lock_impl[2])(pLVar1);
                    /* try { // try from 00190eb4 to 00190eb8 has its CatchHandler @ 001915f2 */
  pTVar10 = find_runnable_or_wait(this,thread_number);
  if (pTVar10 == (Task *)0x0) {
    pLVar1 = (this->lock_).lock_;
    (*pLVar1->_vptr_Lock_impl[3])(pLVar1);
    return false;
  }
  local_a0 = &tl;
  local_ac = local_90 + -0xc8b40;
  if ((undefined **)pTVar10->_vptr_Task[3] != local_ac) {
                    /* try { // try from 00191525 to 00191526 has its CatchHandler @ 001915f2 */
    (*pTVar10->_vptr_Task[3])(pTVar10,local_a0);
  }
  ppcVar15 = &local_cc;
  pLVar1 = (this->lock_).lock_;
  this->running_ = this->running_ + 1;
  (*pLVar1->_vptr_Lock_impl[3])(pLVar1);
  local_94 = local_90 + 0xde;
  local_a4 = local_90 + -0xc8b3c;
  local_a8 = &timer.start_time_.wall;
  local_9c = &timer;
  do {
    piVar3 = (int *)*local_94;
    if ((piVar3[2] != 0) && ((*(byte *)(piVar3 + 5) & 1) != 0)) {
      local_98 = (Task *)*piVar3;
      if ((pTVar10->name_)._M_string_length == 0) {
        ppuVar4 = (undefined **)pTVar10->_vptr_Task[5];
        if (ppuVar4 == local_90 + -0xc8a2c) {
          pcVar13 = pTVar10[1].name_._M_dataplus._M_p;
          timer.start_time_.user = (long)local_a8;
          pcVar11 = (pointer)0xffffffff;
          if (pcVar13 != (pointer)0x0) {
            *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;
            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1910c6;
            local_b0 = pcVar13;
            sVar12 = strlen(*(char **)((int)ppcVar15 + -0x10));
            pcVar11 = local_b0 + sVar12;
            pcVar13 = local_b0;
          }
          *(undefined4 *)((int)ppcVar15 + -4) = 0;
          *(pointer *)((int)ppcVar15 + -8) = pcVar11;
          *(pointer *)((int)ppcVar15 + -0xc) = pcVar13;
          *(Timer **)((int)ppcVar15 + -0x10) = local_9c;
          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1910e0;
          std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
          _M_construct<char_const*>();
        }
        else {
          *(Task **)((int)ppcVar15 + -0xc) = pTVar10;
          *(Timer **)((int)ppcVar15 + -0x10) = local_9c;
          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1914bc;
          (*(code *)ppuVar4)();
          ppcVar15 = (pointer *)((int)ppcVar15 + -4);
        }
        pcVar13 = (pTVar10->name_)._M_dataplus._M_p;
        if ((long *)timer.start_time_.user == local_a8) {
          if (timer.start_time_.sys != 0) {
            if (timer.start_time_.sys == 1) {
              *pcVar13 = (char)timer.start_time_.wall;
              pcVar13 = (pTVar10->name_)._M_dataplus._M_p;
            }
            else {
              *(long *)((int)ppcVar15 + -8) = timer.start_time_.sys;
              *(long **)((int)ppcVar15 + -0xc) = local_a8;
              *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;
              *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19146f;
              memcpy(*(void **)((int)ppcVar15 + -0x10),*(void **)((int)ppcVar15 + -0xc),
                     *(size_t *)((int)ppcVar15 + -8));
              pcVar13 = (pTVar10->name_)._M_dataplus._M_p;
            }
          }
          (pTVar10->name_)._M_string_length = timer.start_time_.sys;
          pcVar13[timer.start_time_.sys] = '\0';
          sVar5 = timer.start_time_.wall;
        }
        else {
          if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
               *)pcVar13 == &(pTVar10->name_).field_2) {
            (pTVar10->name_)._M_dataplus._M_p = (pointer)timer.start_time_.user;
            (pTVar10->name_)._M_string_length = timer.start_time_.sys;
            (pTVar10->name_).field_2._M_allocated_capacity = timer.start_time_.wall;
          }
          else {
            (pTVar10->name_)._M_dataplus._M_p = (pointer)timer.start_time_.user;
            sVar5 = (pTVar10->name_).field_2._M_allocated_capacity;
            (pTVar10->name_)._M_string_length = timer.start_time_.sys;
            (pTVar10->name_).field_2._M_allocated_capacity = timer.start_time_.wall;
            timer.start_time_.user = (long)pcVar13;
            if (pcVar13 != (pointer)0x0) goto LAB_00191120;
          }
          timer.start_time_.user = (long)local_a8;
          sVar5 = timer.start_time_.wall;
        }
LAB_00191120:
        timer.start_time_.wall = sVar5;
        timer.start_time_.sys = 0;
        *(undefined1 *)timer.start_time_.user = 0;
        if ((long *)timer.start_time_.user != local_a8) {
          *(long *)((int)ppcVar15 + -0x10) = timer.start_time_.user;
          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191144;
          operator_delete(*(void **)((int)ppcVar15 + -0x10));
        }
      }
      *(pointer *)((int)ppcVar15 + -4) = (pTVar10->name_)._M_dataplus._M_p;
      *(int *)((int)ppcVar15 + -8) = thread_number;
      *(int *)((int)ppcVar15 + -0xc) = (int)local_90 + -0xf4943;
      *(Task **)((int)ppcVar15 + -0x10) = local_98;
      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191165;
      Errors::debug(*(Errors **)((int)ppcVar15 + -0x10),*(char **)((int)ppcVar15 + -0xc));
    }
    *(Timer **)((int)ppcVar15 + -0x10) = local_9c;
    *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19117c;
    Timer::Timer(*(Timer **)((int)ppcVar15 + -0x10));
    if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {
      *(Timer **)((int)ppcVar15 + -0x10) = local_9c;
      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1911a8;
      Timer::start(*(Timer **)((int)ppcVar15 + -0x10));
    }
    ppuVar4 = (undefined **)pTVar10->_vptr_Task[4];
    if (ppuVar4 == local_a4) {
      pp_Var6 = pTVar10[1]._vptr_Task;
      p_Var7 = *pp_Var6;
      *(Task **)((int)ppcVar15 + -8) = pTVar10;
      *(Workqueue **)((int)ppcVar15 + -0xc) = this;
      *(_func_int_varargs ***)((int)ppcVar15 + -0x10) = pp_Var6;
      pcVar8 = *(code **)(p_Var7 + 8);
      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1911ca;
      (*pcVar8)();
    }
    else {
      *(Workqueue **)((int)ppcVar15 + -0xc) = this;
      *(Task **)((int)ppcVar15 + -0x10) = pTVar10;
      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1913ff;
      (*(code *)ppuVar4)();
    }
    if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {
      *(Timer **)((int)ppcVar15 + -0xc) = local_9c;
      *(int **)((int)ppcVar15 + -0x10) = &local_84;
      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191202;
      Timer::get_elapsed_time(*(Timer **)((int)ppcVar15 + -0xc));
      puVar9 = (undefined4 *)*local_94;
      if ((puVar9[2] != 0) && ((*(byte *)(puVar9 + 5) & 1) != 0)) {
        local_b8 = *puVar9;
        local_bc = local_7c / 1000;
        local_98 = (Task *)((local_7c % 1000) * 1000);
        local_c0 = local_80 / 1000;
        local_b0 = (pointer)((local_80 % 1000) * 1000);
        local_c4 = local_84 / 1000;
        local_b4 = (local_84 % 1000) * 1000;
        if ((pTVar10->name_)._M_string_length == 0) {
          ppuVar4 = (undefined **)pTVar10->_vptr_Task[5];
          if (ppuVar4 == local_90 + -0xc8a2c) {
            pcVar13 = pTVar10[1].name_._M_dataplus._M_p;
            local_c8 = local_5c;
            pcVar11 = (pointer)0xffffffff;
            local_64._M_p = (pointer)local_c8;
            if (pcVar13 != (pointer)0x0) {
              *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;
              *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1912ff;
              local_cc = pcVar13;
              sVar12 = strlen(*(char **)((int)ppcVar15 + -0x10));
              pcVar11 = local_cc + sVar12;
              pcVar13 = local_cc;
            }
            *(undefined4 *)((int)ppcVar15 + -4) = 0;
            *(pointer *)((int)ppcVar15 + -8) = pcVar11;
            *(pointer *)((int)ppcVar15 + -0xc) = pcVar13;
            *(_Alloc_hider **)((int)ppcVar15 + -0x10) = &local_64;
            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191317;
            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::
            _M_construct<char_const*>();
          }
          else {
            *(Task **)((int)ppcVar15 + -0xc) = pTVar10;
            *(_Alloc_hider **)((int)ppcVar15 + -0x10) = &local_64;
            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191579;
            (*(code *)ppuVar4)();
            local_c8 = local_5c;
            ppcVar15 = (pointer *)((int)ppcVar15 + -4);
          }
          _Var14._M_p = (pTVar10->name_)._M_dataplus._M_p;
          if ((size_type *)local_64._M_p == local_c8) {
            if (local_60 != 0) {
              if (local_60 == 1) {
                *_Var14._M_p = (char)local_5c[0];
                _Var14._M_p = (pTVar10->name_)._M_dataplus._M_p;
              }
              else {
                *(size_type *)((int)ppcVar15 + -8) = local_60;
                *(size_type **)((int)ppcVar15 + -0xc) = local_c8;
                *(pointer *)((int)ppcVar15 + -0x10) = _Var14._M_p;
                *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19154f;
                memcpy(*(void **)((int)ppcVar15 + -0x10),*(void **)((int)ppcVar15 + -0xc),
                       *(size_t *)((int)ppcVar15 + -8));
                _Var14._M_p = (pTVar10->name_)._M_dataplus._M_p;
              }
            }
            (pTVar10->name_)._M_string_length = local_60;
            *(_Var14._M_p + local_60) = '\0';
            _Var14._M_p = local_64._M_p;
            sVar5 = local_5c[0];
          }
          else {
            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
                 *)_Var14._M_p == &(pTVar10->name_).field_2) {
              (pTVar10->name_)._M_dataplus._M_p = local_64._M_p;
              (pTVar10->name_)._M_string_length = local_60;
              (pTVar10->name_).field_2._M_allocated_capacity = local_5c[0];
            }
            else {
              (pTVar10->name_)._M_dataplus._M_p = local_64._M_p;
              sVar5 = (pTVar10->name_).field_2._M_allocated_capacity;
              (pTVar10->name_)._M_string_length = local_60;
              (pTVar10->name_).field_2._M_allocated_capacity = local_5c[0];
              local_64._M_p = _Var14._M_p;
              if ((size_type *)_Var14._M_p != (size_type *)0x0) goto LAB_00191357;
            }
            local_64._M_p = (pointer)local_c8;
            local_c8 = local_5c;
            _Var14._M_p = (pointer)local_c8;
            sVar5 = local_5c[0];
          }
LAB_00191357:
          local_5c[0] = sVar5;
          local_60 = 0;
          *_Var14._M_p = '\0';
          if ((size_type *)local_64._M_p != local_c8) {
            *(pointer *)((int)ppcVar15 + -0x10) = local_64._M_p;
            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19137b;
            operator_delete(*(void **)((int)ppcVar15 + -0x10));
          }
        }
        *(Task **)((int)ppcVar15 + -0xc) = local_98;
        *(int *)((int)ppcVar15 + -0x10) = local_bc;
        *(pointer *)((int)ppcVar15 + -0x14) = local_b0;
        *(int *)((int)ppcVar15 + -0x18) = local_c0;
        *(int *)((int)ppcVar15 + -0x1c) = local_b4;
        *(int *)((int)ppcVar15 + -0x20) = local_c4;
        *(pointer *)((int)ppcVar15 + -0x24) = (pTVar10->name_)._M_dataplus._M_p;
        *(int *)((int)ppcVar15 + -0x28) = thread_number;
        *(undefined ***)((int)ppcVar15 + -0x2c) = local_90 + -0x3d24b;
        *(undefined4 *)((int)ppcVar15 + -0x30) = local_b8;
        *(undefined4 *)((int)ppcVar15 + -0x34) = 0x1913c3;
        Errors::debug(*(Errors **)((int)ppcVar15 + -0x30),*(char **)((int)ppcVar15 + -0x2c));
      }
    }
    pLVar1 = (this->lock_).lock_;
    pp_Var6 = pLVar1->_vptr_Lock_impl;
    *(Lock_impl **)((int)ppcVar15 + -0x10) = pLVar1;
    p_Var7 = pp_Var6[2];
    *(undefined4 *)((int)ppcVar15 + -0x14) = 0x190f43;
    (*p_Var7)();
    this->running_ = this->running_ + -1;
    *(Task_locker **)((int)ppcVar15 + -8) = local_a0;
    *(Task **)((int)ppcVar15 + -0xc) = pTVar10;
    *(Workqueue **)((int)ppcVar15 + -0x10) = this;
                    /* try { // try from 00190f52 to 00190f56 has its CatchHandler @ 001915f9 */
    *(undefined4 *)((int)ppcVar15 + -0x14) = 0x190f57;
    local_98 = release_locks(*(Workqueue **)((int)ppcVar15 + -0x10),*(Task **)((int)ppcVar15 + -0xc)
                             ,*(Task_locker **)((int)ppcVar15 + -8));
    if (local_98 == (Task *)0x0) {
      *(Workqueue **)((int)ppcVar15 + -0x10) = this;
                    /* try { // try from 00191414 to 00191440 has its CatchHandler @ 001915f9 */
      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191419;
      local_98 = find_runnable(*(Workqueue **)((int)ppcVar15 + -0x10));
      if (local_98 != (Task *)0x0) goto LAB_00190f68;
    }
    else {
LAB_00190f68:
      tl.count_ = 0;
      ppuVar4 = (undefined **)local_98->_vptr_Task[3];
      if (ppuVar4 != local_ac) {
        *(Task_locker **)((int)ppcVar15 + -0xc) = local_a0;
        *(Task **)((int)ppcVar15 + -0x10) = local_98;
        *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191441;
        (*(code *)ppuVar4)();
      }
      this->running_ = this->running_ + 1;
    }
    pLVar1 = (this->lock_).lock_;
    pp_Var6 = pLVar1->_vptr_Lock_impl;
    *(Lock_impl **)((int)ppcVar15 + -0x10) = pLVar1;
    p_Var7 = pp_Var6[3];
    *(undefined4 *)((int)ppcVar15 + -0x14) = 0x190f95;
    (*p_Var7)();
    ppuVar4 = (undefined **)pTVar10->_vptr_Task[1];
    if (ppuVar4 == local_90 + -0xc8ab8) {
      pTVar10->_vptr_Task = (_func_int_varargs **)(local_90 + -0x307b);
      pp_Var6 = pTVar10[1]._vptr_Task;
      if (pp_Var6 != (_func_int_varargs **)0x0) {
        p_Var7 = *pp_Var6;
        *(_func_int_varargs ***)((int)ppcVar15 + -0x10) = pp_Var6;
        pcVar8 = *(code **)(p_Var7 + 4);
        *(undefined4 *)((int)ppcVar15 + -0x14) = 0x190fc9;
        (*pcVar8)();
      }
      pTVar2 = pTVar10[1].list_next_;
      if (pTVar2 != (Task *)0x0) {
        if (pTVar2->list_next_ != (Task *)0x0) {
          *(undefined ***)((int)ppcVar15 + -8) = local_90 + -0x3d22e;
          *(undefined4 *)((int)ppcVar15 + -0xc) = 100;
          *(int *)((int)ppcVar15 + -0x10) = (int)local_90 + -0x10ea43;
                    /* WARNING: Subroutine does not return */
          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1915d4;
          do_gold_unreachable(*(char **)((int)ppcVar15 + -0x10),*(int *)((int)ppcVar15 + -0xc),
                              *(char **)((int)ppcVar15 + -8));
        }
        if ((pTVar2->name_)._M_dataplus._M_p != (pointer)0x0) {
          *(undefined ***)((int)ppcVar15 + -8) = local_90 + -0x3d22e;
          *(undefined4 *)((int)ppcVar15 + -0xc) = 0x65;
          *(int *)((int)ppcVar15 + -0x10) = (int)local_90 + -0x10ea43;
                    /* WARNING: Subroutine does not return */
          *(undefined1 **)((int)ppcVar15 + -0x14) = &LAB_001915f2;
          do_gold_unreachable(*(char **)((int)ppcVar15 + -0x10),*(int *)((int)ppcVar15 + -0xc),
                              *(char **)((int)ppcVar15 + -8));
        }
        if (((pTVar2->name_)._M_string_length != 0) ||
           ((pTVar2->name_).field_2._M_allocated_capacity != 0)) {
          *(undefined ***)((int)ppcVar15 + -8) = local_90 + -0x3d215;
          *(undefined4 *)((int)ppcVar15 + -0xc) = 0x2c;
          *(int *)((int)ppcVar15 + -0x10) = (int)local_90 + -0x10ea43;
                    /* WARNING: Subroutine does not return */
          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1915b6;
          do_gold_unreachable(*(char **)((int)ppcVar15 + -0x10),*(int *)((int)ppcVar15 + -0xc),
                              *(char **)((int)ppcVar15 + -8));
        }
        *(undefined4 *)((int)ppcVar15 + -0xc) = 0x14;
        *(Task **)((int)ppcVar15 + -0x10) = pTVar2;
        *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191010;
        operator_delete(*(void **)((int)ppcVar15 + -0x10),*(uint *)((int)ppcVar15 + -0xc));
      }
      pTVar10->_vptr_Task = (_func_int_varargs **)(local_90 + -0x1717);
      pcVar13 = (pTVar10->name_)._M_dataplus._M_p;
      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9
           *)pcVar13 != &(pTVar10->name_).field_2) {
        *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;
        *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191034;
        operator_delete(*(void **)((int)ppcVar15 + -0x10));
      }
      *(undefined4 *)((int)ppcVar15 + -0xc) = 0x30;
      *(Task **)((int)ppcVar15 + -0x10) = pTVar10;
      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191048;
      operator_delete(*(void **)((int)ppcVar15 + -0x10),*(uint *)((int)ppcVar15 + -0xc));
      pTVar10 = local_98;
    }
    else {
      *(Task **)((int)ppcVar15 + -0x10) = pTVar10;
      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1913d6;
      (*(code *)ppuVar4)();
      pTVar10 = local_98;
    }
    local_98 = pTVar10;
    if (pTVar10 == (Task *)0x0) {
      return true;
    }
  } while( true );
}



/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

undefined4 FUN_00190e80(undefined4 *param_1,undefined4 param_2)

{
  undefined4 *puVar1;
  undefined **ppuVar2;
  code *pcVar3;
  int *piVar4;
  int iVar5;
  size_t sVar6;
  int *piVar7;
  int iVar8;
  undefined1 *puVar9;
  int *piVar10;
  undefined1 *puVar11;
  int local_cc;
  int *local_c8;
  int local_c4;
  int local_c0;
  int local_bc;
  undefined4 local_b8;
  int local_b4;
  int local_b0;
  undefined **local_ac;
  int *local_a8;
  undefined **local_a4;
  undefined4 *local_a0;
  int **local_9c;
  int *local_98;
  undefined **local_94;
  undefined **local_90;
  int local_84;
  int local_80;
  int local_7c;
  undefined4 local_78 [5];
  int *local_64;
  int local_60;
  int local_5c [4];
  int *local_4c;
  int local_48;
  int local_44 [13];
  
  local_90 = &__DT_PLTGOT;
  local_78[0] = 0;
  (**(code **)(*(int *)*param_1 + 8))((int *)*param_1);
                    /* try { // try from 00190eb4 to 00190eb8 has its CatchHandler @ 001915f2 */
  piVar4 = (int *)FUN_001908c0(param_1,param_2);
  if (piVar4 == (int *)0x0) {
    (**(code **)(*(int *)*param_1 + 0xc))((int *)*param_1);
    return 0;
  }
  local_a0 = local_78;
  local_ac = local_90 + -0xc8b40;
  if (*(undefined ***)(*piVar4 + 0xc) != local_ac) {
                    /* try { // try from 00191525 to 00191526 has its CatchHandler @ 001915f2 */
    (*(code *)*(undefined ***)(*piVar4 + 0xc))(piVar4,local_a0);
  }
  piVar10 = &local_cc;
  param_1[5] = param_1[5] + 1;
  (**(code **)(*(int *)*param_1 + 0xc))((int *)*param_1);
  local_94 = local_90 + 0xde;
  local_a4 = local_90 + -0xc8b3c;
  local_a8 = local_44;
  local_9c = &local_4c;
  do {
    puVar1 = (undefined4 *)*local_94;
    puVar9 = (undefined1 *)piVar10;
    if ((puVar1[2] != 0) && ((*(byte *)(puVar1 + 5) & 1) != 0)) {
      local_98 = (int *)*puVar1;
      if (piVar4[3] == 0) {
        ppuVar2 = *(undefined ***)(*piVar4 + 0x14);
        if (ppuVar2 == local_90 + -0xc8a2c) {
          iVar8 = piVar4[0xb];
          local_4c = local_a8;
          iVar5 = -1;
          if (iVar8 != 0) {
            *(int *)((int)piVar10 + -0x10) = iVar8;
            *(undefined4 *)((int)piVar10 + -0x14) = 0x1910c6;
            local_b0 = iVar8;
            sVar6 = strlen(*(char **)((int)piVar10 + -0x10));
            iVar5 = sVar6 + local_b0;
            iVar8 = local_b0;
          }
          *(undefined4 *)((int)piVar10 + -4) = 0;
          *(int *)((int)piVar10 + -8) = iVar5;
          *(int *)((int)piVar10 + -0xc) = iVar8;
          *(int ***)((int)piVar10 + -0x10) = local_9c;
          *(undefined4 *)((int)piVar10 + -0x14) = 0x1910e0;
          FUN_00050e40();
        }
        else {
          *(int **)((int)piVar10 + -0xc) = piVar4;
          *(int ***)((int)piVar10 + -0x10) = local_9c;
          *(undefined4 *)((int)piVar10 + -0x14) = 0x1914bc;
          (*(code *)ppuVar2)();
          piVar10 = (int *)((int)piVar10 + -4);
        }
        piVar7 = (int *)piVar4[2];
        if (local_4c == local_a8) {
          if (local_48 != 0) {
            if (local_48 == 1) {
              *(undefined1 *)piVar7 = (undefined1)local_44[0];
              piVar7 = (int *)piVar4[2];
            }
            else {
              *(int *)((int)piVar10 + -8) = local_48;
              *(int **)((int)piVar10 + -0xc) = local_a8;
              *(int **)((int)piVar10 + -0x10) = piVar7;
              *(undefined4 *)((int)piVar10 + -0x14) = 0x19146f;
              memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),
                     *(size_t *)((int)piVar10 + -8));
              piVar7 = (int *)piVar4[2];
            }
          }
          piVar4[3] = local_48;
          *(undefined1 *)((int)piVar7 + local_48) = 0;
          iVar8 = local_44[0];
        }
        else {
          if (piVar7 == piVar4 + 4) {
            piVar4[2] = (int)local_4c;
            piVar4[3] = local_48;
            piVar4[4] = local_44[0];
          }
          else {
            piVar4[2] = (int)local_4c;
            iVar8 = piVar4[4];
            piVar4[3] = local_48;
            piVar4[4] = local_44[0];
            local_4c = piVar7;
            if (piVar7 != (int *)0x0) goto LAB_00191120;
          }
          local_4c = local_a8;
          iVar8 = local_44[0];
        }
LAB_00191120:
        local_44[0] = iVar8;
        local_48 = 0;
        *(undefined1 *)local_4c = 0;
        if (local_4c != local_a8) {
          *(int **)((int)piVar10 + -0x10) = local_4c;
          *(undefined4 *)((int)piVar10 + -0x14) = 0x191144;
          FUN_001e6db0();
        }
      }
      *(int *)((int)piVar10 + -4) = piVar4[2];
      *(undefined4 *)((int)piVar10 + -8) = param_2;
      *(int *)((int)piVar10 + -0xc) = (int)local_90 + -0xf4943;
      *(int **)((int)piVar10 + -0x10) = local_98;
      *(undefined4 *)((int)piVar10 + -0x14) = 0x191165;
      FUN_000653f0();
      puVar9 = (undefined1 *)piVar10;
    }
    *(int ***)(puVar9 + -0x10) = local_9c;
    *(undefined4 *)(puVar9 + -0x14) = 0x19117c;
    FUN_0018fff0();
    if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {
      *(int ***)(puVar9 + -0x10) = local_9c;
      *(undefined4 *)(puVar9 + -0x14) = 0x1911a8;
      thunk_FUN_00190010();
    }
    ppuVar2 = *(undefined ***)(*piVar4 + 0x10);
    if (ppuVar2 == local_a4) {
      piVar10 = (int *)piVar4[9];
      iVar8 = *piVar10;
      *(int **)(puVar9 + -8) = piVar4;
      *(undefined4 **)(puVar9 + -0xc) = param_1;
      *(int **)(puVar9 + -0x10) = piVar10;
      pcVar3 = *(code **)(iVar8 + 8);
      *(undefined4 *)(puVar9 + -0x14) = 0x1911ca;
      (*pcVar3)();
    }
    else {
      *(undefined4 **)(puVar9 + -0xc) = param_1;
      *(int **)(puVar9 + -0x10) = piVar4;
      *(undefined4 *)(puVar9 + -0x14) = 0x1913ff;
      (*(code *)ppuVar2)();
    }
    piVar10 = (int *)puVar9;
    if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {
      *(int ***)(puVar9 + -0xc) = local_9c;
      *(int **)(puVar9 + -0x10) = &local_84;
      *(undefined4 *)(puVar9 + -0x14) = 0x191202;
      FUN_001900d0();
      puVar11 = puVar9 + -4;
      puVar1 = (undefined4 *)*local_94;
      piVar10 = (int *)(puVar9 + -4);
      if ((puVar1[2] != 0) && (piVar10 = (int *)(puVar9 + -4), (*(byte *)(puVar1 + 5) & 1) != 0)) {
        local_b8 = *puVar1;
        local_bc = local_7c / 1000;
        local_98 = (int *)((local_7c % 1000) * 1000);
        local_c0 = local_80 / 1000;
        local_b0 = (local_80 % 1000) * 1000;
        local_c4 = local_84 / 1000;
        local_b4 = (local_84 % 1000) * 1000;
        if (piVar4[3] == 0) {
          ppuVar2 = *(undefined ***)(*piVar4 + 0x14);
          if (ppuVar2 == local_90 + -0xc8a2c) {
            iVar8 = piVar4[0xb];
            local_c8 = local_5c;
            iVar5 = -1;
            local_64 = local_c8;
            if (iVar8 != 0) {
              *(int *)(puVar9 + -0x14) = iVar8;
              *(undefined4 *)(puVar9 + -0x18) = 0x1912ff;
              local_cc = iVar8;
              sVar6 = strlen(*(char **)(puVar9 + -0x14));
              iVar5 = sVar6 + local_cc;
              iVar8 = local_cc;
            }
            puVar11 = puVar9 + -4;
            *(undefined4 *)(puVar9 + -8) = 0;
            *(int *)(puVar9 + -0xc) = iVar5;
            *(int *)(puVar9 + -0x10) = iVar8;
            *(int ***)(puVar9 + -0x14) = &local_64;
            *(undefined4 *)(puVar9 + -0x18) = 0x191317;
            FUN_00050e40();
          }
          else {
            *(int **)(puVar9 + -0x10) = piVar4;
            *(int ***)(puVar9 + -0x14) = &local_64;
            *(undefined4 *)(puVar9 + -0x18) = 0x191579;
            (*(code *)ppuVar2)();
            local_c8 = local_5c;
            puVar11 = puVar9 + -8;
          }
          piVar10 = (int *)piVar4[2];
          if (local_64 == local_c8) {
            if (local_60 != 0) {
              if (local_60 == 1) {
                *(undefined1 *)piVar10 = (undefined1)local_5c[0];
                piVar10 = (int *)piVar4[2];
              }
              else {
                *(int *)(puVar11 + -8) = local_60;
                *(int **)(puVar11 + -0xc) = local_c8;
                *(int **)(puVar11 + -0x10) = piVar10;
                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;
                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),
                       *(size_t *)(puVar11 + -8));
                piVar10 = (int *)piVar4[2];
              }
            }
            piVar4[3] = local_60;
            *(undefined1 *)((int)piVar10 + local_60) = 0;
            piVar10 = local_64;
            iVar8 = local_5c[0];
          }
          else {
            if (piVar10 == piVar4 + 4) {
              piVar4[2] = (int)local_64;
              piVar4[3] = local_60;
              piVar4[4] = local_5c[0];
            }
            else {
              piVar4[2] = (int)local_64;
              iVar8 = piVar4[4];
              piVar4[3] = local_60;
              piVar4[4] = local_5c[0];
              local_64 = piVar10;
              if (piVar10 != (int *)0x0) goto LAB_00191357;
            }
            local_64 = local_c8;
            local_c8 = local_5c;
            piVar10 = local_c8;
            iVar8 = local_5c[0];
          }
LAB_00191357:
          local_5c[0] = iVar8;
          local_60 = 0;
          *(undefined1 *)piVar10 = 0;
          if (local_64 != local_c8) {
            *(int **)(puVar11 + -0x10) = local_64;
            *(undefined4 *)(puVar11 + -0x14) = 0x19137b;
            FUN_001e6db0();
          }
        }
        *(int **)(puVar11 + -0xc) = local_98;
        *(int *)(puVar11 + -0x10) = local_bc;
        *(int *)(puVar11 + -0x14) = local_b0;
        *(int *)(puVar11 + -0x18) = local_c0;
        *(int *)(puVar11 + -0x1c) = local_b4;
        *(int *)(puVar11 + -0x20) = local_c4;
        *(int *)(puVar11 + -0x24) = piVar4[2];
        *(undefined4 *)(puVar11 + -0x28) = param_2;
        *(undefined ***)(puVar11 + -0x2c) = local_90 + -0x3d24b;
        *(undefined4 *)(puVar11 + -0x30) = local_b8;
        *(undefined4 *)(puVar11 + -0x34) = 0x1913c3;
        FUN_000653f0();
        piVar10 = (int *)puVar11;
      }
    }
    iVar8 = *(int *)*param_1;
    *(int **)((int)piVar10 + -0x10) = (int *)*param_1;
    pcVar3 = *(code **)(iVar8 + 8);
    *(undefined4 *)((int)piVar10 + -0x14) = 0x190f43;
    (*pcVar3)();
    param_1[5] = param_1[5] + -1;
    *(undefined4 **)((int)piVar10 + -8) = local_a0;
    *(int **)((int)piVar10 + -0xc) = piVar4;
    *(undefined4 **)((int)piVar10 + -0x10) = param_1;
                    /* try { // try from 00190f52 to 00190f56 has its CatchHandler @ 001915f9 */
    *(undefined4 *)((int)piVar10 + -0x14) = 0x190f57;
    local_98 = (int *)FUN_00190b90();
    if (local_98 == (int *)0x0) {
      *(undefined4 **)((int)piVar10 + -0x10) = param_1;
                    /* try { // try from 00191414 to 00191440 has its CatchHandler @ 001915f9 */
      *(undefined4 *)((int)piVar10 + -0x14) = 0x191419;
      local_98 = (int *)FUN_00190880();
      if (local_98 != (int *)0x0) goto LAB_00190f68;
    }
    else {
LAB_00190f68:
      local_78[0] = 0;
      ppuVar2 = *(undefined ***)(*local_98 + 0xc);
      if (ppuVar2 != local_ac) {
        *(undefined4 **)((int)piVar10 + -0xc) = local_a0;
        *(int **)((int)piVar10 + -0x10) = local_98;
        *(undefined4 *)((int)piVar10 + -0x14) = 0x191441;
        (*(code *)ppuVar2)();
      }
      param_1[5] = param_1[5] + 1;
    }
    iVar8 = *(int *)*param_1;
    *(int **)((int)piVar10 + -0x10) = (int *)*param_1;
    pcVar3 = *(code **)(iVar8 + 0xc);
    *(undefined4 *)((int)piVar10 + -0x14) = 0x190f95;
    (*pcVar3)();
    ppuVar2 = *(undefined ***)(*piVar4 + 4);
    if (ppuVar2 == local_90 + -0xc8ab8) {
      *piVar4 = (int)(local_90 + -0x307b);
      piVar7 = (int *)piVar4[9];
      if (piVar7 != (int *)0x0) {
        iVar8 = *piVar7;
        *(int **)((int)piVar10 + -0x10) = piVar7;
        pcVar3 = *(code **)(iVar8 + 4);
        *(undefined4 *)((int)piVar10 + -0x14) = 0x190fc9;
        (*pcVar3)();
      }
      iVar8 = piVar4[10];
      if (iVar8 != 0) {
        if (*(int *)(iVar8 + 4) != 0) {
          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;
          *(undefined4 *)((int)piVar10 + -0xc) = 100;
          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;
                    /* WARNING: Subroutine does not return */
          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915d4;
          FUN_00069d00();
        }
        if (*(int *)(iVar8 + 8) != 0) {
          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;
          *(undefined4 *)((int)piVar10 + -0xc) = 0x65;
          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;
                    /* WARNING: Subroutine does not return */
          *(undefined1 **)((int)piVar10 + -0x14) = &LAB_001915f2;
          FUN_00069d00();
        }
        if ((*(int *)(iVar8 + 0xc) != 0) || (*(int *)(iVar8 + 0x10) != 0)) {
          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d215;
          *(undefined4 *)((int)piVar10 + -0xc) = 0x2c;
          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;
                    /* WARNING: Subroutine does not return */
          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915b6;
          FUN_00069d00();
        }
        *(undefined4 *)((int)piVar10 + -0xc) = 0x14;
        *(int *)((int)piVar10 + -0x10) = iVar8;
        *(undefined4 *)((int)piVar10 + -0x14) = 0x191010;
        FUN_001e6d90();
      }
      *piVar4 = (int)(local_90 + -0x1717);
      if ((int *)piVar4[2] != piVar4 + 4) {
        *(int **)((int)piVar10 + -0x10) = (int *)piVar4[2];
        *(undefined4 *)((int)piVar10 + -0x14) = 0x191034;
        FUN_001e6db0();
      }
      *(undefined4 *)((int)piVar10 + -0xc) = 0x30;
      *(int **)((int)piVar10 + -0x10) = piVar4;
      *(undefined4 *)((int)piVar10 + -0x14) = 0x191048;
      FUN_001e6d90();
      piVar4 = local_98;
    }
    else {
      *(int **)((int)piVar10 + -0x10) = piVar4;
      *(undefined4 *)((int)piVar10 + -0x14) = 0x1913d6;
      (*(code *)ppuVar2)();
      piVar4 = local_98;
    }
    local_98 = piVar4;
    if (piVar4 == (int *)0x0) {
      return 1;
    }
  } while( true );
}


CALL 0x000559e6
ADD EAX,0x1fe17b
PUSH EBP
MOV EBP,ESP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0xc8
MOV EDI,dword ptr [EBP + 0x8]
MOV dword ptr [EBP + 0xffffff74],EAX
MOV dword ptr [EBP + -0x74],0x0
MOV EAX,dword ptr [EDI]
MOV EDX,dword ptr [EAX]
PUSH EAX
CALL dword ptr [EDX + 0x8]
POP ECX
POP EBX
PUSH dword ptr [EBP + 0xc]
PUSH EDI
CALL 0x001908c0
MOV ESI,EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00191508
MOV EAX,dword ptr [EAX]
MOV ECX,dword ptr [EBP + 0xffffff74]
LEA EBX,[EBP + -0x74]
MOV dword ptr [EBP + 0xffffff64],EBX
MOV EAX,dword ptr [EAX + 0xc]
LEA ECX,[ECX + 0xffcdd300]
MOV dword ptr [EBP + 0xffffff58],ECX
CMP EAX,ECX
JNZ 0x00191520
MOV EAX,dword ptr [EDI]
SUB ESP,0xc
ADD dword ptr [EDI + 0x14],0x1
MOV EDX,dword ptr [EAX]
PUSH EAX
CALL dword ptr [EDX + 0xc]
MOV EAX,dword ptr [EBP + 0xffffff74]
ADD ESP,0x10
LEA ECX,[EAX + 0x378]
LEA EAX,[EAX + 0xffcdd310]
MOV dword ptr [EBP + 0xffffff60],EAX
LEA EAX,[EBP + -0x40]
MOV dword ptr [EBP + 0xffffff70],ECX
LEA ECX,[EBP + -0x48]
MOV dword ptr [EBP + 0xffffff68],ECX
MOV dword ptr [EBP + 0xffffff5c],EAX
JMP 0x00191059
MOV EAX,dword ptr [EDI]
SUB ESP,0xc
MOV EDX,dword ptr [EAX]
PUSH EAX
CALL dword ptr [EDX + 0x8]
SUB dword ptr [EDI + 0x14],0x1
ADD ESP,0xc
PUSH dword ptr [EBP + 0xffffff64]
PUSH ESI
PUSH EDI
CALL 0x00190b90
MOV dword ptr [EBP + 0xffffff6c],EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00191410
MOV EAX,dword ptr [EBP + 0xffffff6c]
MOV dword ptr [EBP + -0x74],0x0
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0xc]
CMP EAX,dword ptr [EBP + 0xffffff58]
JNZ 0x00191430
ADD dword ptr [EDI + 0x14],0x1
MOV EAX,dword ptr [EDI]
SUB ESP,0xc
MOV EDX,dword ptr [EAX]
PUSH EAX
CALL dword ptr [EDX + 0xc]
MOV EAX,dword ptr [ESI]
MOV ECX,dword ptr [EBP + 0xffffff74]
ADD ESP,0x10
MOV EAX,dword ptr [EAX + 0x4]
LEA EDX,[ECX + 0xffcdd520]
CMP EAX,EDX
JNZ 0x001913d0
LEA EAX,[ECX + 0xffff3e14]
MOV dword ptr [ESI],EAX
MOV EAX,dword ptr [ESI + 0x24]
TEST EAX,EAX
JZ 0x00190fcc
SUB ESP,0xc
MOV EDX,dword ptr [EAX]
PUSH EAX
CALL dword ptr [EDX + 0x4]
ADD ESP,0x10
MOV EAX,dword ptr [ESI + 0x28]
TEST EAX,EAX
JZ 0x00191013
MOV EDX,dword ptr [EAX + 0x4]
TEST EDX,EDX
JNZ 0x001915b6
MOV EBX,dword ptr [EAX + 0x8]
TEST EBX,EBX
JNZ 0x001915d4
MOV ECX,dword ptr [EAX + 0xc]
TEST ECX,ECX
JNZ 0x00191598
MOV EDX,dword ptr [EAX + 0x10]
TEST EDX,EDX
JNZ 0x00191598
SUB ESP,0x8
MOV EBX,dword ptr [EBP + 0xffffff74]
PUSH 0x14
PUSH EAX
CALL 0x001e6d90
ADD ESP,0x10
MOV EBX,dword ptr [EBP + 0xffffff74]
LEA EDX,[ESI + 0x10]
LEA EAX,[EBX + 0xffffa3a4]
MOV dword ptr [ESI],EAX
MOV EAX,dword ptr [ESI + 0x8]
CMP EAX,EDX
JZ 0x00191037
SUB ESP,0xc
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
SUB ESP,0x8
MOV EBX,dword ptr [EBP + 0xffffff74]
PUSH 0x30
PUSH ESI
CALL 0x001e6d90
MOV ESI,dword ptr [EBP + 0xffffff6c]
ADD ESP,0x10
TEST ESI,ESI
JZ 0x001913e7
MOV EAX,dword ptr [EBP + 0xffffff70]
MOV EAX,dword ptr [EAX]
MOV EDX,dword ptr [EAX + 0x8]
TEST EDX,EDX
JZ 0x00191168
TEST byte ptr [EAX + 0x14],0x1
JZ 0x00191168
MOV EAX,dword ptr [EAX]
MOV EBX,dword ptr [ESI + 0xc]
MOV dword ptr [EBP + 0xffffff6c],EAX
TEST EBX,EBX
JNZ 0x00191147
MOV EAX,dword ptr [ESI]
MOV EBX,dword ptr [EBP + 0xffffff74]
MOV EAX,dword ptr [EAX + 0x14]
LEA EDX,[EBX + 0xffcdd750]
CMP EAX,EDX
JNZ 0x001914b0
MOV EAX,dword ptr [EBP + 0xffffff5c]
MOV EDX,dword ptr [ESI + 0x2c]
MOV dword ptr [EBP + -0x48],EAX
MOV EAX,0xffffffff
TEST EDX,EDX
JZ 0x001910d1
SUB ESP,0xc
MOV dword ptr [EBP + 0xffffff54],EDX
PUSH EDX
CALL 0x000295f0
MOV EDX,dword ptr [EBP + 0xffffff54]
ADD ESP,0x10
ADD EAX,EDX
PUSH 0x0
PUSH EAX
PUSH EDX
PUSH dword ptr [EBP + 0xffffff68]
CALL 0x00050e40
ADD ESP,0x10
MOV EAX,dword ptr [ESI + 0x8]
MOV ECX,dword ptr [EBP + -0x48]
MOV EDX,dword ptr [EBP + -0x44]
CMP ECX,dword ptr [EBP + 0xffffff5c]
JZ 0x00191450
LEA EBX,[ESI + 0x10]
CMP EAX,EBX
JZ 0x00191490
MOV dword ptr [ESI + 0x8],ECX
MOV EBX,dword ptr [ESI + 0x10]
MOV dword ptr [ESI + 0xc],EDX
MOV EDX,dword ptr [EBP + -0x40]
MOV dword ptr [ESI + 0x10],EDX
TEST EAX,EAX
JZ 0x0019149c
MOV dword ptr [EBP + -0x48],EAX
MOV dword ptr [EBP + -0x40],EBX
MOV dword ptr [EBP + -0x44],0x0
MOV byte ptr [EAX],0x0
MOV EAX,dword ptr [EBP + -0x48]
CMP EAX,dword ptr [EBP + 0xffffff5c]
JZ 0x00191147
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xffffff74]
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
MOV EBX,dword ptr [EBP + 0xffffff74]
PUSH dword ptr [ESI + 0x8]
PUSH dword ptr [EBP + 0xc]
LEA EAX,[EBX + 0xfff0b6bd]
PUSH EAX
PUSH dword ptr [EBP + 0xffffff6c]
CALL 0x000653f0
ADD ESP,0x10
SUB ESP,0xc
PUSH dword ptr [EBP + 0xffffff68]
MOV EBX,dword ptr [EBP + 0xffffff74]
CALL 0x0018fff0
MOV EAX,dword ptr [EBP + 0xffffff70]
ADD ESP,0x10
MOV EAX,dword ptr [EAX]
MOV ECX,dword ptr [EAX + 0x8]
TEST ECX,ECX
JZ 0x001911ab
TEST byte ptr [EAX + 0x14],0x1
JZ 0x001911ab
SUB ESP,0xc
PUSH dword ptr [EBP + 0xffffff68]
MOV EBX,dword ptr [EBP + 0xffffff74]
CALL 0x00190070
ADD ESP,0x10
MOV EAX,dword ptr [ESI]
MOV EAX,dword ptr [EAX + 0x10]
CMP EAX,dword ptr [EBP + 0xffffff60]
JNZ 0x001913f8
MOV EAX,dword ptr [ESI + 0x24]
SUB ESP,0x4
MOV EDX,dword ptr [EAX]
PUSH ESI
PUSH EDI
PUSH EAX
CALL dword ptr [EDX + 0x8]
ADD ESP,0x10
MOV EAX,dword ptr [EBP + 0xffffff70]
MOV EAX,dword ptr [EAX]
MOV EDX,dword ptr [EAX + 0x8]
TEST EDX,EDX
JZ 0x00190f38
TEST byte ptr [EAX + 0x14],0x1
JZ 0x00190f38
LEA EAX,[EBP + -0x80]
SUB ESP,0x8
PUSH dword ptr [EBP + 0xffffff68]
MOV EBX,dword ptr [EBP + 0xffffff74]
PUSH EAX
CALL 0x001900d0
MOV EAX,dword ptr [EBP + 0xffffff70]
ADD ESP,0xc
MOV EAX,dword ptr [EAX]
MOV EBX,dword ptr [EAX + 0x8]
TEST EBX,EBX
JZ 0x00190f38
TEST byte ptr [EAX + 0x14],0x1
JZ 0x00190f38
MOV EAX,dword ptr [EAX]
MOV ECX,0x10624dd3
MOV EBX,dword ptr [EBP + -0x7c]
MOV dword ptr [EBP + 0xffffff4c],EAX
MOV EAX,ECX
IMUL dword ptr [EBP + -0x78]
MOV EAX,dword ptr [EBP + -0x78]
SAR EDX,0x6
SAR EAX,0x1f
SUB EDX,EAX
IMUL EAX,EDX,0x3e8
MOV dword ptr [EBP + 0xffffff48],EDX
MOV EDX,dword ptr [EBP + -0x78]
SUB EDX,EAX
IMUL EAX,EDX,0x3e8
MOV dword ptr [EBP + 0xffffff6c],EAX
MOV EAX,EBX
IMUL ECX
MOV EAX,EBX
SAR EAX,0x1f
SAR EDX,0x6
SUB EDX,EAX
IMUL EAX,EDX,0x3e8
MOV dword ptr [EBP + 0xffffff44],EDX
SUB EBX,EAX
IMUL EAX,EBX,0x3e8
MOV dword ptr [EBP + 0xffffff54],EAX
MOV EAX,ECX
IMUL dword ptr [EBP + -0x80]
MOV EAX,dword ptr [EBP + -0x80]
MOV ECX,dword ptr [EBP + -0x80]
SAR EAX,0x1f
SAR EDX,0x6
SUB EDX,EAX
IMUL EAX,EDX,0x3e8
MOV dword ptr [EBP + 0xffffff40],EDX
SUB ECX,EAX
IMUL EAX,ECX,0x3e8
MOV ECX,dword ptr [ESI + 0xc]
MOV dword ptr [EBP + 0xffffff50],EAX
TEST ECX,ECX
JNZ 0x0019137e
MOV EAX,dword ptr [ESI]
MOV EBX,dword ptr [EBP + 0xffffff74]
MOV EAX,dword ptr [EAX + 0x14]
LEA EDX,[EBX + 0xffcdd750]
CMP EAX,EDX
JNZ 0x0019156f
MOV EDX,dword ptr [ESI + 0x2c]
LEA EAX,[EBP + -0x58]
MOV dword ptr [EBP + 0xffffff3c],EAX
MOV dword ptr [EBP + -0x60],EAX
MOV EAX,0xffffffff
TEST EDX,EDX
JZ 0x0019130a
SUB ESP,0xc
MOV dword ptr [EBP + 0xffffff38],EDX
PUSH EDX
CALL 0x000295f0
MOV EDX,dword ptr [EBP + 0xffffff38]
ADD ESP,0x10
ADD EAX,EDX
PUSH 0x0
PUSH EAX
LEA EAX,[EBP + -0x60]
PUSH EDX
PUSH EAX
CALL 0x00050e40
ADD ESP,0x10
MOV EAX,dword ptr [ESI + 0x8]
MOV ECX,dword ptr [EBP + -0x60]
MOV EDX,dword ptr [EBP + -0x5c]
CMP ECX,dword ptr [EBP + 0xffffff3c]
JZ 0x00191530
LEA EBX,[ESI + 0x10]
CMP EAX,EBX
JZ 0x001914e0
MOV dword ptr [ESI + 0x8],ECX
MOV EBX,dword ptr [ESI + 0x10]
MOV dword ptr [ESI + 0xc],EDX
MOV EDX,dword ptr [EBP + -0x58]
MOV dword ptr [ESI + 0x10],EDX
TEST EAX,EAX
JZ 0x001914ec
MOV dword ptr [EBP + -0x60],EAX
MOV dword ptr [EBP + -0x58],EBX
MOV dword ptr [EBP + -0x5c],0x0
MOV byte ptr [EAX],0x0
MOV EAX,dword ptr [EBP + -0x60]
CMP EAX,dword ptr [EBP + 0xffffff3c]
JZ 0x0019137e
SUB ESP,0xc
MOV EBX,dword ptr [EBP + 0xffffff74]
PUSH EAX
CALL 0x001e6db0
ADD ESP,0x10
MOV EBX,dword ptr [EBP + 0xffffff74]
SUB ESP,0x8
PUSH dword ptr [EBP + 0xffffff6c]
PUSH dword ptr [EBP + 0xffffff48]
LEA EAX,[EBX + 0xfff0b6d4]
PUSH dword ptr [EBP + 0xffffff54]
PUSH dword ptr [EBP + 0xffffff44]
PUSH dword ptr [EBP + 0xffffff50]
PUSH dword ptr [EBP + 0xffffff40]
PUSH dword ptr [ESI + 0x8]
PUSH dword ptr [EBP + 0xc]
PUSH EAX
PUSH dword ptr [EBP + 0xffffff4c]
CALL 0x000653f0
ADD ESP,0x30
JMP 0x00190f38
SUB ESP,0xc
PUSH ESI
CALL EAX
MOV ESI,dword ptr [EBP + 0xffffff6c]
ADD ESP,0x10
TEST ESI,ESI
JNZ 0x00191059
LEA ESP,[EBP + -0xc]
MOV EAX,0x1
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x8
PUSH EDI
PUSH ESI
CALL EAX
ADD ESP,0x10
JMP 0x001911cd
SUB ESP,0xc
PUSH EDI
CALL 0x00190880
MOV dword ptr [EBP + 0xffffff6c],EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00190f8a
JMP 0x00190f68
SUB ESP,0x8
PUSH dword ptr [EBP + 0xffffff64]
PUSH dword ptr [EBP + 0xffffff6c]
CALL EAX
ADD ESP,0x10
JMP 0x00190f86
TEST EDX,EDX
JZ 0x00191480
CMP EDX,0x1
JZ 0x001914c8
SUB ESP,0x4
MOV EBX,dword ptr [EBP + 0xffffff74]
PUSH EDX
PUSH dword ptr [EBP + 0xffffff5c]
PUSH EAX
CALL 0x000295c0
MOV EDX,dword ptr [EBP + -0x44]
MOV EAX,dword ptr [ESI + 0x8]
ADD ESP,0x10
LEA ESI,[ESI]
NOP
MOV dword ptr [ESI + 0xc],EDX
MOV byte ptr [EAX + EDX*0x1],0x0
MOV EAX,dword ptr [EBP + -0x48]
JMP 0x00191120
MOV dword ptr [ESI + 0x8],ECX
MOV dword ptr [ESI + 0xc],EDX
MOV EAX,dword ptr [EBP + -0x40]
MOV dword ptr [ESI + 0x10],EAX
MOV EAX,dword ptr [EBP + 0xffffff5c]
MOV dword ptr [EBP + -0x48],EAX
JMP 0x00191120
SUB ESP,0x8
PUSH ESI
PUSH dword ptr [EBP + 0xffffff68]
CALL EAX
ADD ESP,0xc
JMP 0x001910e3
MOVZX EDX,byte ptr [EBP + -0x40]
MOV byte ptr [EAX],DL
MOV EDX,dword ptr [EBP + -0x44]
MOV EAX,dword ptr [ESI + 0x8]
JMP 0x00191480
MOV dword ptr [ESI + 0x8],ECX
MOV EAX,dword ptr [EBP + -0x58]
MOV dword ptr [ESI + 0xc],EDX
MOV dword ptr [ESI + 0x10],EAX
MOV EAX,dword ptr [EBP + 0xffffff3c]
MOV dword ptr [EBP + -0x60],EAX
LEA EAX,[EBP + -0x58]
MOV dword ptr [EBP + 0xffffff3c],EAX
JMP 0x00191357
MOV EAX,dword ptr [EDI]
SUB ESP,0xc
MOV EDX,dword ptr [EAX]
PUSH EAX
CALL dword ptr [EDX + 0xc]
XOR EAX,EAX
ADD ESP,0x10
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x8
PUSH EBX
PUSH ESI
CALL EAX
ADD ESP,0x10
JMP 0x00190eee
TEST EDX,EDX
JZ 0x00191560
CMP EDX,0x1
JZ 0x0019158a
SUB ESP,0x4
MOV EBX,dword ptr [EBP + 0xffffff74]
PUSH EDX
PUSH dword ptr [EBP + 0xffffff3c]
PUSH EAX
CALL 0x000295c0
MOV EDX,dword ptr [EBP + -0x5c]
MOV EAX,dword ptr [ESI + 0x8]
ADD ESP,0x10
LEA ESI,[ESI]
NOP
MOV dword ptr [ESI + 0xc],EDX
MOV byte ptr [EAX + EDX*0x1],0x0
MOV EAX,dword ptr [EBP + -0x60]
JMP 0x00191357
SUB ESP,0x8
LEA EDX,[EBP + -0x60]
PUSH ESI
PUSH EDX
CALL EAX
LEA EAX,[EBP + -0x58]
ADD ESP,0xc
MOV dword ptr [EBP + 0xffffff3c],EAX
JMP 0x0019131a
MOVZX EDX,byte ptr [EBP + -0x58]
MOV byte ptr [EAX],DL
MOV EDX,dword ptr [EBP + -0x5c]
MOV EAX,dword ptr [ESI + 0x8]
JMP 0x00191560
MOV EBX,dword ptr [EBP + 0xffffff74]
SUB ESP,0x4
LEA EAX,[EBX + 0xfff0b7ac]
PUSH EAX
LEA EAX,[EBX + 0xffef15bd]
PUSH 0x2c
PUSH EAX
CALL 0x00069d00
MOV EBX,dword ptr [EBP + 0xffffff74]
SUB ESP,0x4
LEA EAX,[EBX + 0xfff0b748]
PUSH EAX
LEA EAX,[EBX + 0xffef15bd]
PUSH 0x64
PUSH EAX
CALL 0x00069d00
MOV EBX,dword ptr [EBP + 0xffffff74]
SUB ESP,0x4
LEA EAX,[EBX + 0xfff0b748]
PUSH EAX
LEA EAX,[EBX + 0xffef15bd]
PUSH 0x65
PUSH EAX
CALL 0x00069d00
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nundefined4 FUN_00190e80(undefined4 *param_1,undefined4 param_2)\n\n{\n  undefined4 *puVar1;\n  undefined **ppuVar2;\n  code *pcVar3;\n  int *piVar4;\n  int iVar5;\n  size_t sVar6;\n  int *piVar7;\n  int iVar8;\n  undefined1 *puVar9;\n  int *piVar10;\n  undefined1 *puVar11;\n  int local_cc;\n  int *local_c8;\n  int local_c4;\n  int local_c0;\n  int local_bc;\n  undefined4 local_b8;\n  int local_b4;\n  int local_b0;\n  undefined **local_ac;\n  int *local_a8;\n  undefined **local_a4;\n  undefined4 *local_a0;\n  int **local_9c;\n  int *local_98;\n  undefined **local_94;\n  undefined **local_90;\n  int local_84;\n  int local_80;\n  int local_7c;\n  undefined4 local_78 [5];\n  int *local_64;\n  int local_60;\n  int local_5c [4];\n  int *local_4c;\n  int local_48;\n  int local_44 [13];\n  \n  local_90 = &__DT_PLTGOT;\n  local_78[0] = 0;\n  (**(code **)(*(int *)*param_1 + 8))((int *)*param_1);\n                    /* try { // try from 00190eb4 to 00190eb8 has its CatchHandler @ 001915f2 */\n  piVar4 = (int *)FUN_001908c0(param_1,param_2);\n  if (piVar4 == (int *)0x0) {\n    (**(code **)(*(int *)*param_1 + 0xc))((int *)*param_1);\n    return 0;\n  }\n  local_a0 = local_78;\n  local_ac = local_90 + -0xc8b40;\n  if (*(undefined ***)(*piVar4 + 0xc) != local_ac) {\n                    /* try { // try from 00191525 to 00191526 has its CatchHandler @ 001915f2 */\n    (*(code *)*(undefined ***)(*piVar4 + 0xc))(piVar4,local_a0);\n  }\n  piVar10 = &local_cc;\n  param_1[5] = param_1[5] + 1;\n  (**(code **)(*(int *)*param_1 + 0xc))((int *)*param_1);\n  local_94 = local_90 + 0xde;\n  local_a4 = local_90 + -0xc8b3c;\n  local_a8 = local_44;\n  local_9c = &local_4c;\n  do {\n    puVar1 = (undefined4 *)*local_94;\n    puVar9 = (undefined1 *)piVar10;\n    if ((puVar1[2] != 0) && ((*(byte *)(puVar1 + 5) & 1) != 0)) {\n      local_98 = (int *)*puVar1;\n      if (piVar4[3] == 0) {\n        ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n        if (ppuVar2 == local_90 + -0xc8a2c) {\n          iVar8 = piVar4[0xb];\n          local_4c = local_a8;\n          iVar5 = -1;\n          if (iVar8 != 0) {\n            *(int *)((int)piVar10 + -0x10) = iVar8;\n            *(undefined4 *)((int)piVar10 + -0x14) = 0x1910c6;\n            local_b0 = iVar8;\n            sVar6 = strlen(*(char **)((int)piVar10 + -0x10));\n            iVar5 = sVar6 + local_b0;\n            iVar8 = local_b0;\n          }\n          *(undefined4 *)((int)piVar10 + -4) = 0;\n          *(int *)((int)piVar10 + -8) = iVar5;\n          *(int *)((int)piVar10 + -0xc) = iVar8;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1910e0;\n          FUN_00050e40();\n        }\n        else {\n          *(int **)((int)piVar10 + -0xc) = piVar4;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1914bc;\n          (*(code *)ppuVar2)();\n          piVar10 = (int *)((int)piVar10 + -4);\n        }\n        piVar7 = (int *)piVar4[2];\n        if (local_4c == local_a8) {\n          if (local_48 != 0) {\n            if (local_48 == 1) {\n              *(undefined1 *)piVar7 = (undefined1)local_44[0];\n              piVar7 = (int *)piVar4[2];\n            }\n            else {\n              *(int *)((int)piVar10 + -8) = local_48;\n              *(int **)((int)piVar10 + -0xc) = local_a8;\n              *(int **)((int)piVar10 + -0x10) = piVar7;\n              *(undefined4 *)((int)piVar10 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8));\n              piVar7 = (int *)piVar4[2];\n            }\n          }\n          piVar4[3] = local_48;\n          *(undefined1 *)((int)piVar7 + local_48) = 0;\n          iVar8 = local_44[0];\n        }\n        else {\n          if (piVar7 == piVar4 + 4) {\n            piVar4[2] = (int)local_4c;\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n          }\n          else {\n            piVar4[2] = (int)local_4c;\n            iVar8 = piVar4[4];\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n            local_4c = piVar7;\n            if (piVar7 != (int *)0x0) goto LAB_00191120;\n          }\n          local_4c = local_a8;\n          iVar8 = local_44[0];\n        }\nLAB_00191120:\n        local_44[0] = iVar8;\n        local_48 = 0;\n        *(undefined1 *)local_4c = 0;\n        if (local_4c != local_a8) {\n          *(int **)((int)piVar10 + -0x10) = local_4c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x191144;\n          FUN_001e6db0();\n        }\n      }\n      *(int *)((int)piVar10 + -4) = piVar4[2];\n      *(undefined4 *)((int)piVar10 + -8) = param_2;\n      *(int *)((int)piVar10 + -0xc) = (int)local_90 + -0xf4943;\n      *(int **)((int)piVar10 + -0x10) = local_98;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191165;\n      FUN_000653f0();\n      puVar9 = (undefined1 *)piVar10;\n    }\n    *(int ***)(puVar9 + -0x10) = local_9c;\n    *(undefined4 *)(puVar9 + -0x14) = 0x19117c;\n    FUN_0018fff0();\n    if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {\n      *(int ***)(puVar9 + -0x10) = local_9c;\n      *(undefined4 *)(puVar9 + -0x14) = 0x1911a8;\n      thunk_FUN_00190010();\n    }\n    ppuVar2 = *(undefined ***)(*piVar4 + 0x10);\n    if (ppuVar2 == local_a4) {\n      piVar10 = (int *)piVar4[9];\n      iVar8 = *piVar10;\n      *(int **)(puVar9 + -8) = piVar4;\n      *(undefined4 **)(puVar9 + -0xc) = param_1;\n      *(int **)(puVar9 + -0x10) = piVar10;\n      pcVar3 = *(code **)(iVar8 + 8);\n      *(undefined4 *)(puVar9 + -0x14) = 0x1911ca;\n      (*pcVar3)();\n    }\n    else {\n      *(undefined4 **)(puVar9 + -0xc) = param_1;\n      *(int **)(puVar9 + -0x10) = piVar4;\n      *(undefined4 *)(puVar9 + -0x14) = 0x1913ff;\n      (*(code *)ppuVar2)();\n    }\n    piVar10 = (int *)puVar9;\n    if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {\n      *(int ***)(puVar9 + -0xc) = local_9c;\n      *(int **)(puVar9 + -0x10) = &local_84;\n      *(undefined4 *)(puVar9 + -0x14) = 0x191202;\n      FUN_001900d0();\n      puVar11 = puVar9 + -4;\n      puVar1 = (undefined4 *)*local_94;\n      piVar10 = (int *)(puVar9 + -4);\n      if ((puVar1[2] != 0) && (piVar10 = (int *)(puVar9 + -4), (*(byte *)(puVar1 + 5) & 1) != 0)) {\n        local_b8 = *puVar1;\n        local_bc = local_7c / 1000;\n        local_98 = (int *)((local_7c % 1000) * 1000);\n        local_c0 = local_80 / 1000;\n        local_b0 = (local_80 % 1000) * 1000;\n        local_c4 = local_84 / 1000;\n        local_b4 = (local_84 % 1000) * 1000;\n        if (piVar4[3] == 0) {\n          ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n          if (ppuVar2 == local_90 + -0xc8a2c) {\n            iVar8 = piVar4[0xb];\n            local_c8 = local_5c;\n            iVar5 = -1;\n            local_64 = local_c8;\n            if (iVar8 != 0) {\n              *(int *)(puVar9 + -0x14) = iVar8;\n              *(undefined4 *)(puVar9 + -0x18) = 0x1912ff;\n              local_cc = iVar8;\n              sVar6 = strlen(*(char **)(puVar9 + -0x14));\n              iVar5 = sVar6 + local_cc;\n              iVar8 = local_cc;\n            }\n            puVar11 = puVar9 + -4;\n            *(undefined4 *)(puVar9 + -8) = 0;\n            *(int *)(puVar9 + -0xc) = iVar5;\n            *(int *)(puVar9 + -0x10) = iVar8;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191317;\n            FUN_00050e40();\n          }\n          else {\n            *(int **)(puVar9 + -0x10) = piVar4;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191579;\n            (*(code *)ppuVar2)();\n            local_c8 = local_5c;\n            puVar11 = puVar9 + -8;\n          }\n          piVar10 = (int *)piVar4[2];\n          if (local_64 == local_c8) {\n            if (local_60 != 0) {\n              if (local_60 == 1) {\n                *(undefined1 *)piVar10 = (undefined1)local_5c[0];\n                piVar10 = (int *)piVar4[2];\n              }\n              else {\n                *(int *)(puVar11 + -8) = local_60;\n                *(int **)(puVar11 + -0xc) = local_c8;\n                *(int **)(puVar11 + -0x10) = piVar10;\n                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;\n                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));\n                piVar10 = (int *)piVar4[2];\n              }\n            }\n            piVar4[3] = local_60;\n            *(undefined1 *)((int)piVar10 + local_60) = 0;\n            piVar10 = local_64;\n            iVar8 = local_5c[0];\n          }\n          else {\n            if (piVar10 == piVar4 + 4) {\n              piVar4[2] = (int)local_64;\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n            }\n            else {\n              piVar4[2] = (int)local_64;\n              iVar8 = piVar4[4];\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n              local_64 = piVar10;\n              if (piVar10 != (int *)0x0) goto LAB_00191357;\n            }\n            local_64 = local_c8;\n            local_c8 = local_5c;\n            piVar10 = local_c8;\n            iVar8 = local_5c[0];\n          }\nLAB_00191357:\n          local_5c[0] = iVar8;\n          local_60 = 0;\n          *(undefined1 *)piVar10 = 0;\n          if (local_64 != local_c8) {\n            *(int **)(puVar11 + -0x10) = local_64;\n            *(undefined4 *)(puVar11 + -0x14) = 0x19137b;\n            FUN_001e6db0();\n          }\n        }\n        *(int **)(puVar11 + -0xc) = local_98;\n        *(int *)(puVar11 + -0x10) = local_bc;\n        *(int *)(puVar11 + -0x14) = local_b0;\n        *(int *)(puVar11 + -0x18) = local_c0;\n        *(int *)(puVar11 + -0x1c) = local_b4;\n        *(int *)(puVar11 + -0x20) = local_c4;\n        *(int *)(puVar11 + -0x24) = piVar4[2];\n        *(undefined4 *)(puVar11 + -0x28) = param_2;\n        *(undefined ***)(puVar11 + -0x2c) = local_90 + -0x3d24b;\n        *(undefined4 *)(puVar11 + -0x30) = local_b8;\n        *(undefined4 *)(puVar11 + -0x34) = 0x1913c3;\n        FUN_000653f0();\n        piVar10 = (int *)puVar11;\n      }\n    }\n    iVar8 = *(int *)*param_1;\n    *(int **)((int)piVar10 + -0x10) = (int *)*param_1;\n    pcVar3 = *(code **)(iVar8 + 8);\n    *(undefined4 *)((int)piVar10 + -0x14) = 0x190f43;\n    (*pcVar3)();\n    param_1[5] = param_1[5] + -1;\n    *(undefined4 **)((int)piVar10 + -8) = local_a0;\n    *(int **)((int)piVar10 + -0xc) = piVar4;\n    *(undefined4 **)((int)piVar10 + -0x10) = param_1;\n                    /* try { // try from 00190f52 to 00190f56 has its CatchHandler @ 001915f9 */\n    *(undefined4 *)((int)piVar10 + -0x14) = 0x190f57;\n    local_98 = (int *)FUN_00190b90();\n    if (local_98 == (int *)0x0) {\n      *(undefined4 **)((int)piVar10 + -0x10) = param_1;\n                    /* try { // try from 00191414 to 00191440 has its CatchHandler @ 001915f9 */\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191419;\n      local_98 = (int *)FUN_00190880();\n      if (local_98 != (int *)0x0) goto LAB_00190f68;\n    }\n    else {\nLAB_00190f68:\n      local_78[0] = 0;\n      ppuVar2 = *(undefined ***)(*local_98 + 0xc);\n      if (ppuVar2 != local_ac) {\n        *(undefined4 **)((int)piVar10 + -0xc) = local_a0;\n        *(int **)((int)piVar10 + -0x10) = local_98;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191441;\n        (*(code *)ppuVar2)();\n      }\n      param_1[5] = param_1[5] + 1;\n    }\n    iVar8 = *(int *)*param_1;\n    *(int **)((int)piVar10 + -0x10) = (int *)*param_1;\n    pcVar3 = *(code **)(iVar8 + 0xc);\n    *(undefined4 *)((int)piVar10 + -0x14) = 0x190f95;\n    (*pcVar3)();\n    ppuVar2 = *(undefined ***)(*piVar4 + 4);\n    if (ppuVar2 == local_90 + -0xc8ab8) {\n      *piVar4 = (int)(local_90 + -0x307b);\n      piVar7 = (int *)piVar4[9];\n      if (piVar7 != (int *)0x0) {\n        iVar8 = *piVar7;\n        *(int **)((int)piVar10 + -0x10) = piVar7;\n        pcVar3 = *(code **)(iVar8 + 4);\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x190fc9;\n        (*pcVar3)();\n      }\n      iVar8 = piVar4[10];\n      if (iVar8 != 0) {\n        if (*(int *)(iVar8 + 4) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 100;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915d4;\n          FUN_00069d00();\n        }\n        if (*(int *)(iVar8 + 8) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x65;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined1 **)((int)piVar10 + -0x14) = &LAB_001915f2;\n          FUN_00069d00();\n        }\n        if ((*(int *)(iVar8 + 0xc) != 0) || (*(int *)(iVar8 + 0x10) != 0)) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d215;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x2c;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915b6;\n          FUN_00069d00();\n        }\n        *(undefined4 *)((int)piVar10 + -0xc) = 0x14;\n        *(int *)((int)piVar10 + -0x10) = iVar8;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191010;\n        FUN_001e6d90();\n      }\n      *piVar4 = (int)(local_90 + -0x1717);\n      if ((int *)piVar4[2] != piVar4 + 4) {\n        *(int **)((int)piVar10 + -0x10) = (int *)piVar4[2];\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191034;\n        FUN_001e6db0();\n      }\n      *(undefined4 *)((int)piVar10 + -0xc) = 0x30;\n      *(int **)((int)piVar10 + -0x10) = piVar4;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191048;\n      FUN_001e6d90();\n      piVar4 = local_98;\n    }\n    else {\n      *(int **)((int)piVar10 + -0x10) = piVar4;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x1913d6;\n      (*(code *)ppuVar2)();\n      piVar4 = local_98;\n    }\n    local_98 = piVar4;\n    if (piVar4 == (int *)0x0) {\n      return 1;\n    }\n  } while( true );\n}\n\n" comment (function_definition "undefined4 FUN_00190e80(undefined4 *param_1,undefined4 param_2)\n\n{\n  undefined4 *puVar1;\n  undefined **ppuVar2;\n  code *pcVar3;\n  int *piVar4;\n  int iVar5;\n  size_t sVar6;\n  int *piVar7;\n  int iVar8;\n  undefined1 *puVar9;\n  int *piVar10;\n  undefined1 *puVar11;\n  int local_cc;\n  int *local_c8;\n  int local_c4;\n  int local_c0;\n  int local_bc;\n  undefined4 local_b8;\n  int local_b4;\n  int local_b0;\n  undefined **local_ac;\n  int *local_a8;\n  undefined **local_a4;\n  undefined4 *local_a0;\n  int **local_9c;\n  int *local_98;\n  undefined **local_94;\n  undefined **local_90;\n  int local_84;\n  int local_80;\n  int local_7c;\n  undefined4 local_78 [5];\n  int *local_64;\n  int local_60;\n  int local_5c [4];\n  int *local_4c;\n  int local_48;\n  int local_44 [13];\n  \n  local_90 = &__DT_PLTGOT;\n  local_78[0] = 0;\n  (**(code **)(*(int *)*param_1 + 8))((int *)*param_1);\n                    /* try { // try from 00190eb4 to 00190eb8 has its CatchHandler @ 001915f2 */\n  piVar4 = (int *)FUN_001908c0(param_1,param_2);\n  if (piVar4 == (int *)0x0) {\n    (**(code **)(*(int *)*param_1 + 0xc))((int *)*param_1);\n    return 0;\n  }\n  local_a0 = local_78;\n  local_ac = local_90 + -0xc8b40;\n  if (*(undefined ***)(*piVar4 + 0xc) != local_ac) {\n                    /* try { // try from 00191525 to 00191526 has its CatchHandler @ 001915f2 */\n    (*(code *)*(undefined ***)(*piVar4 + 0xc))(piVar4,local_a0);\n  }\n  piVar10 = &local_cc;\n  param_1[5] = param_1[5] + 1;\n  (**(code **)(*(int *)*param_1 + 0xc))((int *)*param_1);\n  local_94 = local_90 + 0xde;\n  local_a4 = local_90 + -0xc8b3c;\n  local_a8 = local_44;\n  local_9c = &local_4c;\n  do {\n    puVar1 = (undefined4 *)*local_94;\n    puVar9 = (undefined1 *)piVar10;\n    if ((puVar1[2] != 0) && ((*(byte *)(puVar1 + 5) & 1) != 0)) {\n      local_98 = (int *)*puVar1;\n      if (piVar4[3] == 0) {\n        ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n        if (ppuVar2 == local_90 + -0xc8a2c) {\n          iVar8 = piVar4[0xb];\n          local_4c = local_a8;\n          iVar5 = -1;\n          if (iVar8 != 0) {\n            *(int *)((int)piVar10 + -0x10) = iVar8;\n            *(undefined4 *)((int)piVar10 + -0x14) = 0x1910c6;\n            local_b0 = iVar8;\n            sVar6 = strlen(*(char **)((int)piVar10 + -0x10));\n            iVar5 = sVar6 + local_b0;\n            iVar8 = local_b0;\n          }\n          *(undefined4 *)((int)piVar10 + -4) = 0;\n          *(int *)((int)piVar10 + -8) = iVar5;\n          *(int *)((int)piVar10 + -0xc) = iVar8;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1910e0;\n          FUN_00050e40();\n        }\n        else {\n          *(int **)((int)piVar10 + -0xc) = piVar4;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1914bc;\n          (*(code *)ppuVar2)();\n          piVar10 = (int *)((int)piVar10 + -4);\n        }\n        piVar7 = (int *)piVar4[2];\n        if (local_4c == local_a8) {\n          if (local_48 != 0) {\n            if (local_48 == 1) {\n              *(undefined1 *)piVar7 = (undefined1)local_44[0];\n              piVar7 = (int *)piVar4[2];\n            }\n            else {\n              *(int *)((int)piVar10 + -8) = local_48;\n              *(int **)((int)piVar10 + -0xc) = local_a8;\n              *(int **)((int)piVar10 + -0x10) = piVar7;\n              *(undefined4 *)((int)piVar10 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8));\n              piVar7 = (int *)piVar4[2];\n            }\n          }\n          piVar4[3] = local_48;\n          *(undefined1 *)((int)piVar7 + local_48) = 0;\n          iVar8 = local_44[0];\n        }\n        else {\n          if (piVar7 == piVar4 + 4) {\n            piVar4[2] = (int)local_4c;\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n          }\n          else {\n            piVar4[2] = (int)local_4c;\n            iVar8 = piVar4[4];\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n            local_4c = piVar7;\n            if (piVar7 != (int *)0x0) goto LAB_00191120;\n          }\n          local_4c = local_a8;\n          iVar8 = local_44[0];\n        }\nLAB_00191120:\n        local_44[0] = iVar8;\n        local_48 = 0;\n        *(undefined1 *)local_4c = 0;\n        if (local_4c != local_a8) {\n          *(int **)((int)piVar10 + -0x10) = local_4c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x191144;\n          FUN_001e6db0();\n        }\n      }\n      *(int *)((int)piVar10 + -4) = piVar4[2];\n      *(undefined4 *)((int)piVar10 + -8) = param_2;\n      *(int *)((int)piVar10 + -0xc) = (int)local_90 + -0xf4943;\n      *(int **)((int)piVar10 + -0x10) = local_98;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191165;\n      FUN_000653f0();\n      puVar9 = (undefined1 *)piVar10;\n    }\n    *(int ***)(puVar9 + -0x10) = local_9c;\n    *(undefined4 *)(puVar9 + -0x14) = 0x19117c;\n    FUN_0018fff0();\n    if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {\n      *(int ***)(puVar9 + -0x10) = local_9c;\n      *(undefined4 *)(puVar9 + -0x14) = 0x1911a8;\n      thunk_FUN_00190010();\n    }\n    ppuVar2 = *(undefined ***)(*piVar4 + 0x10);\n    if (ppuVar2 == local_a4) {\n      piVar10 = (int *)piVar4[9];\n      iVar8 = *piVar10;\n      *(int **)(puVar9 + -8) = piVar4;\n      *(undefined4 **)(puVar9 + -0xc) = param_1;\n      *(int **)(puVar9 + -0x10) = piVar10;\n      pcVar3 = *(code **)(iVar8 + 8);\n      *(undefined4 *)(puVar9 + -0x14) = 0x1911ca;\n      (*pcVar3)();\n    }\n    else {\n      *(undefined4 **)(puVar9 + -0xc) = param_1;\n      *(int **)(puVar9 + -0x10) = piVar4;\n      *(undefined4 *)(puVar9 + -0x14) = 0x1913ff;\n      (*(code *)ppuVar2)();\n    }\n    piVar10 = (int *)puVar9;\n    if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {\n      *(int ***)(puVar9 + -0xc) = local_9c;\n      *(int **)(puVar9 + -0x10) = &local_84;\n      *(undefined4 *)(puVar9 + -0x14) = 0x191202;\n      FUN_001900d0();\n      puVar11 = puVar9 + -4;\n      puVar1 = (undefined4 *)*local_94;\n      piVar10 = (int *)(puVar9 + -4);\n      if ((puVar1[2] != 0) && (piVar10 = (int *)(puVar9 + -4), (*(byte *)(puVar1 + 5) & 1) != 0)) {\n        local_b8 = *puVar1;\n        local_bc = local_7c / 1000;\n        local_98 = (int *)((local_7c % 1000) * 1000);\n        local_c0 = local_80 / 1000;\n        local_b0 = (local_80 % 1000) * 1000;\n        local_c4 = local_84 / 1000;\n        local_b4 = (local_84 % 1000) * 1000;\n        if (piVar4[3] == 0) {\n          ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n          if (ppuVar2 == local_90 + -0xc8a2c) {\n            iVar8 = piVar4[0xb];\n            local_c8 = local_5c;\n            iVar5 = -1;\n            local_64 = local_c8;\n            if (iVar8 != 0) {\n              *(int *)(puVar9 + -0x14) = iVar8;\n              *(undefined4 *)(puVar9 + -0x18) = 0x1912ff;\n              local_cc = iVar8;\n              sVar6 = strlen(*(char **)(puVar9 + -0x14));\n              iVar5 = sVar6 + local_cc;\n              iVar8 = local_cc;\n            }\n            puVar11 = puVar9 + -4;\n            *(undefined4 *)(puVar9 + -8) = 0;\n            *(int *)(puVar9 + -0xc) = iVar5;\n            *(int *)(puVar9 + -0x10) = iVar8;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191317;\n            FUN_00050e40();\n          }\n          else {\n            *(int **)(puVar9 + -0x10) = piVar4;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191579;\n            (*(code *)ppuVar2)();\n            local_c8 = local_5c;\n            puVar11 = puVar9 + -8;\n          }\n          piVar10 = (int *)piVar4[2];\n          if (local_64 == local_c8) {\n            if (local_60 != 0) {\n              if (local_60 == 1) {\n                *(undefined1 *)piVar10 = (undefined1)local_5c[0];\n                piVar10 = (int *)piVar4[2];\n              }\n              else {\n                *(int *)(puVar11 + -8) = local_60;\n                *(int **)(puVar11 + -0xc) = local_c8;\n                *(int **)(puVar11 + -0x10) = piVar10;\n                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;\n                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));\n                piVar10 = (int *)piVar4[2];\n              }\n            }\n            piVar4[3] = local_60;\n            *(undefined1 *)((int)piVar10 + local_60) = 0;\n            piVar10 = local_64;\n            iVar8 = local_5c[0];\n          }\n          else {\n            if (piVar10 == piVar4 + 4) {\n              piVar4[2] = (int)local_64;\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n            }\n            else {\n              piVar4[2] = (int)local_64;\n              iVar8 = piVar4[4];\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n              local_64 = piVar10;\n              if (piVar10 != (int *)0x0) goto LAB_00191357;\n            }\n            local_64 = local_c8;\n            local_c8 = local_5c;\n            piVar10 = local_c8;\n            iVar8 = local_5c[0];\n          }\nLAB_00191357:\n          local_5c[0] = iVar8;\n          local_60 = 0;\n          *(undefined1 *)piVar10 = 0;\n          if (local_64 != local_c8) {\n            *(int **)(puVar11 + -0x10) = local_64;\n            *(undefined4 *)(puVar11 + -0x14) = 0x19137b;\n            FUN_001e6db0();\n          }\n        }\n        *(int **)(puVar11 + -0xc) = local_98;\n        *(int *)(puVar11 + -0x10) = local_bc;\n        *(int *)(puVar11 + -0x14) = local_b0;\n        *(int *)(puVar11 + -0x18) = local_c0;\n        *(int *)(puVar11 + -0x1c) = local_b4;\n        *(int *)(puVar11 + -0x20) = local_c4;\n        *(int *)(puVar11 + -0x24) = piVar4[2];\n        *(undefined4 *)(puVar11 + -0x28) = param_2;\n        *(undefined ***)(puVar11 + -0x2c) = local_90 + -0x3d24b;\n        *(undefined4 *)(puVar11 + -0x30) = local_b8;\n        *(undefined4 *)(puVar11 + -0x34) = 0x1913c3;\n        FUN_000653f0();\n        piVar10 = (int *)puVar11;\n      }\n    }\n    iVar8 = *(int *)*param_1;\n    *(int **)((int)piVar10 + -0x10) = (int *)*param_1;\n    pcVar3 = *(code **)(iVar8 + 8);\n    *(undefined4 *)((int)piVar10 + -0x14) = 0x190f43;\n    (*pcVar3)();\n    param_1[5] = param_1[5] + -1;\n    *(undefined4 **)((int)piVar10 + -8) = local_a0;\n    *(int **)((int)piVar10 + -0xc) = piVar4;\n    *(undefined4 **)((int)piVar10 + -0x10) = param_1;\n                    /* try { // try from 00190f52 to 00190f56 has its CatchHandler @ 001915f9 */\n    *(undefined4 *)((int)piVar10 + -0x14) = 0x190f57;\n    local_98 = (int *)FUN_00190b90();\n    if (local_98 == (int *)0x0) {\n      *(undefined4 **)((int)piVar10 + -0x10) = param_1;\n                    /* try { // try from 00191414 to 00191440 has its CatchHandler @ 001915f9 */\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191419;\n      local_98 = (int *)FUN_00190880();\n      if (local_98 != (int *)0x0) goto LAB_00190f68;\n    }\n    else {\nLAB_00190f68:\n      local_78[0] = 0;\n      ppuVar2 = *(undefined ***)(*local_98 + 0xc);\n      if (ppuVar2 != local_ac) {\n        *(undefined4 **)((int)piVar10 + -0xc) = local_a0;\n        *(int **)((int)piVar10 + -0x10) = local_98;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191441;\n        (*(code *)ppuVar2)();\n      }\n      param_1[5] = param_1[5] + 1;\n    }\n    iVar8 = *(int *)*param_1;\n    *(int **)((int)piVar10 + -0x10) = (int *)*param_1;\n    pcVar3 = *(code **)(iVar8 + 0xc);\n    *(undefined4 *)((int)piVar10 + -0x14) = 0x190f95;\n    (*pcVar3)();\n    ppuVar2 = *(undefined ***)(*piVar4 + 4);\n    if (ppuVar2 == local_90 + -0xc8ab8) {\n      *piVar4 = (int)(local_90 + -0x307b);\n      piVar7 = (int *)piVar4[9];\n      if (piVar7 != (int *)0x0) {\n        iVar8 = *piVar7;\n        *(int **)((int)piVar10 + -0x10) = piVar7;\n        pcVar3 = *(code **)(iVar8 + 4);\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x190fc9;\n        (*pcVar3)();\n      }\n      iVar8 = piVar4[10];\n      if (iVar8 != 0) {\n        if (*(int *)(iVar8 + 4) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 100;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915d4;\n          FUN_00069d00();\n        }\n        if (*(int *)(iVar8 + 8) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x65;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined1 **)((int)piVar10 + -0x14) = &LAB_001915f2;\n          FUN_00069d00();\n        }\n        if ((*(int *)(iVar8 + 0xc) != 0) || (*(int *)(iVar8 + 0x10) != 0)) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d215;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x2c;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915b6;\n          FUN_00069d00();\n        }\n        *(undefined4 *)((int)piVar10 + -0xc) = 0x14;\n        *(int *)((int)piVar10 + -0x10) = iVar8;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191010;\n        FUN_001e6d90();\n      }\n      *piVar4 = (int)(local_90 + -0x1717);\n      if ((int *)piVar4[2] != piVar4 + 4) {\n        *(int **)((int)piVar10 + -0x10) = (int *)piVar4[2];\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191034;\n        FUN_001e6db0();\n      }\n      *(undefined4 *)((int)piVar10 + -0xc) = 0x30;\n      *(int **)((int)piVar10 + -0x10) = piVar4;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191048;\n      FUN_001e6d90();\n      piVar4 = local_98;\n    }\n    else {\n      *(int **)((int)piVar10 + -0x10) = piVar4;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x1913d6;\n      (*(code *)ppuVar2)();\n      piVar4 = local_98;\n    }\n    local_98 = piVar4;\n    if (piVar4 == (int *)0x0) {\n      return 1;\n    }\n  } while( true );\n}" type_identifier (function_declarator "FUN_00190e80(undefined4 *param_1,undefined4 param_2)" identifier (parameter_list "(undefined4 *param_1,undefined4 param_2)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) ))) (compound_statement "{\n  undefined4 *puVar1;\n  undefined **ppuVar2;\n  code *pcVar3;\n  int *piVar4;\n  int iVar5;\n  size_t sVar6;\n  int *piVar7;\n  int iVar8;\n  undefined1 *puVar9;\n  int *piVar10;\n  undefined1 *puVar11;\n  int local_cc;\n  int *local_c8;\n  int local_c4;\n  int local_c0;\n  int local_bc;\n  undefined4 local_b8;\n  int local_b4;\n  int local_b0;\n  undefined **local_ac;\n  int *local_a8;\n  undefined **local_a4;\n  undefined4 *local_a0;\n  int **local_9c;\n  int *local_98;\n  undefined **local_94;\n  undefined **local_90;\n  int local_84;\n  int local_80;\n  int local_7c;\n  undefined4 local_78 [5];\n  int *local_64;\n  int local_60;\n  int local_5c [4];\n  int *local_4c;\n  int local_48;\n  int local_44 [13];\n  \n  local_90 = &__DT_PLTGOT;\n  local_78[0] = 0;\n  (**(code **)(*(int *)*param_1 + 8))((int *)*param_1);\n                    /* try { // try from 00190eb4 to 00190eb8 has its CatchHandler @ 001915f2 */\n  piVar4 = (int *)FUN_001908c0(param_1,param_2);\n  if (piVar4 == (int *)0x0) {\n    (**(code **)(*(int *)*param_1 + 0xc))((int *)*param_1);\n    return 0;\n  }\n  local_a0 = local_78;\n  local_ac = local_90 + -0xc8b40;\n  if (*(undefined ***)(*piVar4 + 0xc) != local_ac) {\n                    /* try { // try from 00191525 to 00191526 has its CatchHandler @ 001915f2 */\n    (*(code *)*(undefined ***)(*piVar4 + 0xc))(piVar4,local_a0);\n  }\n  piVar10 = &local_cc;\n  param_1[5] = param_1[5] + 1;\n  (**(code **)(*(int *)*param_1 + 0xc))((int *)*param_1);\n  local_94 = local_90 + 0xde;\n  local_a4 = local_90 + -0xc8b3c;\n  local_a8 = local_44;\n  local_9c = &local_4c;\n  do {\n    puVar1 = (undefined4 *)*local_94;\n    puVar9 = (undefined1 *)piVar10;\n    if ((puVar1[2] != 0) && ((*(byte *)(puVar1 + 5) & 1) != 0)) {\n      local_98 = (int *)*puVar1;\n      if (piVar4[3] == 0) {\n        ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n        if (ppuVar2 == local_90 + -0xc8a2c) {\n          iVar8 = piVar4[0xb];\n          local_4c = local_a8;\n          iVar5 = -1;\n          if (iVar8 != 0) {\n            *(int *)((int)piVar10 + -0x10) = iVar8;\n            *(undefined4 *)((int)piVar10 + -0x14) = 0x1910c6;\n            local_b0 = iVar8;\n            sVar6 = strlen(*(char **)((int)piVar10 + -0x10));\n            iVar5 = sVar6 + local_b0;\n            iVar8 = local_b0;\n          }\n          *(undefined4 *)((int)piVar10 + -4) = 0;\n          *(int *)((int)piVar10 + -8) = iVar5;\n          *(int *)((int)piVar10 + -0xc) = iVar8;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1910e0;\n          FUN_00050e40();\n        }\n        else {\n          *(int **)((int)piVar10 + -0xc) = piVar4;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1914bc;\n          (*(code *)ppuVar2)();\n          piVar10 = (int *)((int)piVar10 + -4);\n        }\n        piVar7 = (int *)piVar4[2];\n        if (local_4c == local_a8) {\n          if (local_48 != 0) {\n            if (local_48 == 1) {\n              *(undefined1 *)piVar7 = (undefined1)local_44[0];\n              piVar7 = (int *)piVar4[2];\n            }\n            else {\n              *(int *)((int)piVar10 + -8) = local_48;\n              *(int **)((int)piVar10 + -0xc) = local_a8;\n              *(int **)((int)piVar10 + -0x10) = piVar7;\n              *(undefined4 *)((int)piVar10 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8));\n              piVar7 = (int *)piVar4[2];\n            }\n          }\n          piVar4[3] = local_48;\n          *(undefined1 *)((int)piVar7 + local_48) = 0;\n          iVar8 = local_44[0];\n        }\n        else {\n          if (piVar7 == piVar4 + 4) {\n            piVar4[2] = (int)local_4c;\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n          }\n          else {\n            piVar4[2] = (int)local_4c;\n            iVar8 = piVar4[4];\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n            local_4c = piVar7;\n            if (piVar7 != (int *)0x0) goto LAB_00191120;\n          }\n          local_4c = local_a8;\n          iVar8 = local_44[0];\n        }\nLAB_00191120:\n        local_44[0] = iVar8;\n        local_48 = 0;\n        *(undefined1 *)local_4c = 0;\n        if (local_4c != local_a8) {\n          *(int **)((int)piVar10 + -0x10) = local_4c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x191144;\n          FUN_001e6db0();\n        }\n      }\n      *(int *)((int)piVar10 + -4) = piVar4[2];\n      *(undefined4 *)((int)piVar10 + -8) = param_2;\n      *(int *)((int)piVar10 + -0xc) = (int)local_90 + -0xf4943;\n      *(int **)((int)piVar10 + -0x10) = local_98;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191165;\n      FUN_000653f0();\n      puVar9 = (undefined1 *)piVar10;\n    }\n    *(int ***)(puVar9 + -0x10) = local_9c;\n    *(undefined4 *)(puVar9 + -0x14) = 0x19117c;\n    FUN_0018fff0();\n    if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {\n      *(int ***)(puVar9 + -0x10) = local_9c;\n      *(undefined4 *)(puVar9 + -0x14) = 0x1911a8;\n      thunk_FUN_00190010();\n    }\n    ppuVar2 = *(undefined ***)(*piVar4 + 0x10);\n    if (ppuVar2 == local_a4) {\n      piVar10 = (int *)piVar4[9];\n      iVar8 = *piVar10;\n      *(int **)(puVar9 + -8) = piVar4;\n      *(undefined4 **)(puVar9 + -0xc) = param_1;\n      *(int **)(puVar9 + -0x10) = piVar10;\n      pcVar3 = *(code **)(iVar8 + 8);\n      *(undefined4 *)(puVar9 + -0x14) = 0x1911ca;\n      (*pcVar3)();\n    }\n    else {\n      *(undefined4 **)(puVar9 + -0xc) = param_1;\n      *(int **)(puVar9 + -0x10) = piVar4;\n      *(undefined4 *)(puVar9 + -0x14) = 0x1913ff;\n      (*(code *)ppuVar2)();\n    }\n    piVar10 = (int *)puVar9;\n    if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {\n      *(int ***)(puVar9 + -0xc) = local_9c;\n      *(int **)(puVar9 + -0x10) = &local_84;\n      *(undefined4 *)(puVar9 + -0x14) = 0x191202;\n      FUN_001900d0();\n      puVar11 = puVar9 + -4;\n      puVar1 = (undefined4 *)*local_94;\n      piVar10 = (int *)(puVar9 + -4);\n      if ((puVar1[2] != 0) && (piVar10 = (int *)(puVar9 + -4), (*(byte *)(puVar1 + 5) & 1) != 0)) {\n        local_b8 = *puVar1;\n        local_bc = local_7c / 1000;\n        local_98 = (int *)((local_7c % 1000) * 1000);\n        local_c0 = local_80 / 1000;\n        local_b0 = (local_80 % 1000) * 1000;\n        local_c4 = local_84 / 1000;\n        local_b4 = (local_84 % 1000) * 1000;\n        if (piVar4[3] == 0) {\n          ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n          if (ppuVar2 == local_90 + -0xc8a2c) {\n            iVar8 = piVar4[0xb];\n            local_c8 = local_5c;\n            iVar5 = -1;\n            local_64 = local_c8;\n            if (iVar8 != 0) {\n              *(int *)(puVar9 + -0x14) = iVar8;\n              *(undefined4 *)(puVar9 + -0x18) = 0x1912ff;\n              local_cc = iVar8;\n              sVar6 = strlen(*(char **)(puVar9 + -0x14));\n              iVar5 = sVar6 + local_cc;\n              iVar8 = local_cc;\n            }\n            puVar11 = puVar9 + -4;\n            *(undefined4 *)(puVar9 + -8) = 0;\n            *(int *)(puVar9 + -0xc) = iVar5;\n            *(int *)(puVar9 + -0x10) = iVar8;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191317;\n            FUN_00050e40();\n          }\n          else {\n            *(int **)(puVar9 + -0x10) = piVar4;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191579;\n            (*(code *)ppuVar2)();\n            local_c8 = local_5c;\n            puVar11 = puVar9 + -8;\n          }\n          piVar10 = (int *)piVar4[2];\n          if (local_64 == local_c8) {\n            if (local_60 != 0) {\n              if (local_60 == 1) {\n                *(undefined1 *)piVar10 = (undefined1)local_5c[0];\n                piVar10 = (int *)piVar4[2];\n              }\n              else {\n                *(int *)(puVar11 + -8) = local_60;\n                *(int **)(puVar11 + -0xc) = local_c8;\n                *(int **)(puVar11 + -0x10) = piVar10;\n                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;\n                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));\n                piVar10 = (int *)piVar4[2];\n              }\n            }\n            piVar4[3] = local_60;\n            *(undefined1 *)((int)piVar10 + local_60) = 0;\n            piVar10 = local_64;\n            iVar8 = local_5c[0];\n          }\n          else {\n            if (piVar10 == piVar4 + 4) {\n              piVar4[2] = (int)local_64;\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n            }\n            else {\n              piVar4[2] = (int)local_64;\n              iVar8 = piVar4[4];\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n              local_64 = piVar10;\n              if (piVar10 != (int *)0x0) goto LAB_00191357;\n            }\n            local_64 = local_c8;\n            local_c8 = local_5c;\n            piVar10 = local_c8;\n            iVar8 = local_5c[0];\n          }\nLAB_00191357:\n          local_5c[0] = iVar8;\n          local_60 = 0;\n          *(undefined1 *)piVar10 = 0;\n          if (local_64 != local_c8) {\n            *(int **)(puVar11 + -0x10) = local_64;\n            *(undefined4 *)(puVar11 + -0x14) = 0x19137b;\n            FUN_001e6db0();\n          }\n        }\n        *(int **)(puVar11 + -0xc) = local_98;\n        *(int *)(puVar11 + -0x10) = local_bc;\n        *(int *)(puVar11 + -0x14) = local_b0;\n        *(int *)(puVar11 + -0x18) = local_c0;\n        *(int *)(puVar11 + -0x1c) = local_b4;\n        *(int *)(puVar11 + -0x20) = local_c4;\n        *(int *)(puVar11 + -0x24) = piVar4[2];\n        *(undefined4 *)(puVar11 + -0x28) = param_2;\n        *(undefined ***)(puVar11 + -0x2c) = local_90 + -0x3d24b;\n        *(undefined4 *)(puVar11 + -0x30) = local_b8;\n        *(undefined4 *)(puVar11 + -0x34) = 0x1913c3;\n        FUN_000653f0();\n        piVar10 = (int *)puVar11;\n      }\n    }\n    iVar8 = *(int *)*param_1;\n    *(int **)((int)piVar10 + -0x10) = (int *)*param_1;\n    pcVar3 = *(code **)(iVar8 + 8);\n    *(undefined4 *)((int)piVar10 + -0x14) = 0x190f43;\n    (*pcVar3)();\n    param_1[5] = param_1[5] + -1;\n    *(undefined4 **)((int)piVar10 + -8) = local_a0;\n    *(int **)((int)piVar10 + -0xc) = piVar4;\n    *(undefined4 **)((int)piVar10 + -0x10) = param_1;\n                    /* try { // try from 00190f52 to 00190f56 has its CatchHandler @ 001915f9 */\n    *(undefined4 *)((int)piVar10 + -0x14) = 0x190f57;\n    local_98 = (int *)FUN_00190b90();\n    if (local_98 == (int *)0x0) {\n      *(undefined4 **)((int)piVar10 + -0x10) = param_1;\n                    /* try { // try from 00191414 to 00191440 has its CatchHandler @ 001915f9 */\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191419;\n      local_98 = (int *)FUN_00190880();\n      if (local_98 != (int *)0x0) goto LAB_00190f68;\n    }\n    else {\nLAB_00190f68:\n      local_78[0] = 0;\n      ppuVar2 = *(undefined ***)(*local_98 + 0xc);\n      if (ppuVar2 != local_ac) {\n        *(undefined4 **)((int)piVar10 + -0xc) = local_a0;\n        *(int **)((int)piVar10 + -0x10) = local_98;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191441;\n        (*(code *)ppuVar2)();\n      }\n      param_1[5] = param_1[5] + 1;\n    }\n    iVar8 = *(int *)*param_1;\n    *(int **)((int)piVar10 + -0x10) = (int *)*param_1;\n    pcVar3 = *(code **)(iVar8 + 0xc);\n    *(undefined4 *)((int)piVar10 + -0x14) = 0x190f95;\n    (*pcVar3)();\n    ppuVar2 = *(undefined ***)(*piVar4 + 4);\n    if (ppuVar2 == local_90 + -0xc8ab8) {\n      *piVar4 = (int)(local_90 + -0x307b);\n      piVar7 = (int *)piVar4[9];\n      if (piVar7 != (int *)0x0) {\n        iVar8 = *piVar7;\n        *(int **)((int)piVar10 + -0x10) = piVar7;\n        pcVar3 = *(code **)(iVar8 + 4);\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x190fc9;\n        (*pcVar3)();\n      }\n      iVar8 = piVar4[10];\n      if (iVar8 != 0) {\n        if (*(int *)(iVar8 + 4) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 100;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915d4;\n          FUN_00069d00();\n        }\n        if (*(int *)(iVar8 + 8) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x65;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined1 **)((int)piVar10 + -0x14) = &LAB_001915f2;\n          FUN_00069d00();\n        }\n        if ((*(int *)(iVar8 + 0xc) != 0) || (*(int *)(iVar8 + 0x10) != 0)) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d215;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x2c;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915b6;\n          FUN_00069d00();\n        }\n        *(undefined4 *)((int)piVar10 + -0xc) = 0x14;\n        *(int *)((int)piVar10 + -0x10) = iVar8;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191010;\n        FUN_001e6d90();\n      }\n      *piVar4 = (int)(local_90 + -0x1717);\n      if ((int *)piVar4[2] != piVar4 + 4) {\n        *(int **)((int)piVar10 + -0x10) = (int *)piVar4[2];\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191034;\n        FUN_001e6db0();\n      }\n      *(undefined4 *)((int)piVar10 + -0xc) = 0x30;\n      *(int **)((int)piVar10 + -0x10) = piVar4;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191048;\n      FUN_001e6d90();\n      piVar4 = local_98;\n    }\n    else {\n      *(int **)((int)piVar10 + -0x10) = piVar4;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x1913d6;\n      (*(code *)ppuVar2)();\n      piVar4 = local_98;\n    }\n    local_98 = piVar4;\n    if (piVar4 == (int *)0x0) {\n      return 1;\n    }\n  } while( true );\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined **ppuVar2;" type_identifier (pointer_declarator "**ppuVar2" * (pointer_declarator "*ppuVar2" * identifier)) ;) (declaration "code *pcVar3;" type_identifier (pointer_declarator "*pcVar3" * identifier) ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "size_t sVar6;" primitive_type identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined1 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "undefined1 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "int local_cc;" primitive_type identifier ;) (declaration "int *local_c8;" primitive_type (pointer_declarator "*local_c8" * identifier) ;) (declaration "int local_c4;" primitive_type identifier ;) (declaration "int local_c0;" primitive_type identifier ;) (declaration "int local_bc;" primitive_type identifier ;) (declaration "undefined4 local_b8;" type_identifier identifier ;) (declaration "int local_b4;" primitive_type identifier ;) (declaration "int local_b0;" primitive_type identifier ;) (declaration "undefined **local_ac;" type_identifier (pointer_declarator "**local_ac" * (pointer_declarator "*local_ac" * identifier)) ;) (declaration "int *local_a8;" primitive_type (pointer_declarator "*local_a8" * identifier) ;) (declaration "undefined **local_a4;" type_identifier (pointer_declarator "**local_a4" * (pointer_declarator "*local_a4" * identifier)) ;) (declaration "undefined4 *local_a0;" type_identifier (pointer_declarator "*local_a0" * identifier) ;) (declaration "int **local_9c;" primitive_type (pointer_declarator "**local_9c" * (pointer_declarator "*local_9c" * identifier)) ;) (declaration "int *local_98;" primitive_type (pointer_declarator "*local_98" * identifier) ;) (declaration "undefined **local_94;" type_identifier (pointer_declarator "**local_94" * (pointer_declarator "*local_94" * identifier)) ;) (declaration "undefined **local_90;" type_identifier (pointer_declarator "**local_90" * (pointer_declarator "*local_90" * identifier)) ;) (declaration "int local_84;" primitive_type identifier ;) (declaration "int local_80;" primitive_type identifier ;) (declaration "int local_7c;" primitive_type identifier ;) (declaration "undefined4 local_78 [5];" type_identifier (array_declarator "local_78 [5]" identifier [ number_literal ]) ;) (declaration "int *local_64;" primitive_type (pointer_declarator "*local_64" * identifier) ;) (declaration "int local_60;" primitive_type identifier ;) (declaration "int local_5c [4];" primitive_type (array_declarator "local_5c [4]" identifier [ number_literal ]) ;) (declaration "int *local_4c;" primitive_type (pointer_declarator "*local_4c" * identifier) ;) (declaration "int local_48;" primitive_type identifier ;) (declaration "int local_44 [13];" primitive_type (array_declarator "local_44 [13]" identifier [ number_literal ]) ;) (expression_statement "local_90 = &__DT_PLTGOT;" (assignment_expression "local_90 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "local_78[0] = 0;" (assignment_expression "local_78[0] = 0" (subscript_expression "local_78[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "(**(code **)(*(int *)*param_1 + 8))((int *)*param_1);" (call_expression "(**(code **)(*(int *)*param_1 + 8))((int *)*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 "*" *)) ) (pointer_expression "*param_1" * identifier))) + number_literal) ))))) )) (argument_list "((int *)*param_1)" ( (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) ))) ;) comment (expression_statement "piVar4 = (int *)FUN_001908c0(param_1,param_2);" (assignment_expression "piVar4 = (int *)FUN_001908c0(param_1,param_2)" identifier = (cast_expression "(int *)FUN_001908c0(param_1,param_2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001908c0(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier ))))) ;) (if_statement "if (piVar4 == (int *)0x0) {\n    (**(code **)(*(int *)*param_1 + 0xc))((int *)*param_1);\n    return 0;\n  }" if (parenthesized_expression "(piVar4 == (int *)0x0)" ( (binary_expression "piVar4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(*(int *)*param_1 + 0xc))((int *)*param_1);\n    return 0;\n  }" { (expression_statement "(**(code **)(*(int *)*param_1 + 0xc))((int *)*param_1);" (call_expression "(**(code **)(*(int *)*param_1 + 0xc))((int *)*param_1)" (parenthesized_expression "(**(code **)(*(int *)*param_1 + 0xc))" ( (pointer_expression "**(code **)(*(int *)*param_1 + 0xc)" * (pointer_expression "*(code **)(*(int *)*param_1 + 0xc)" * (cast_expression "(code **)(*(int *)*param_1 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)*param_1 + 0xc)" ( (binary_expression "*(int *)*param_1 + 0xc" (pointer_expression "*(int *)*param_1" * (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) + number_literal) ))))) )) (argument_list "((int *)*param_1)" ( (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "local_a0 = local_78;" (assignment_expression "local_a0 = local_78" identifier = identifier) ;) (expression_statement "local_ac = local_90 + -0xc8b40;" (assignment_expression "local_ac = local_90 + -0xc8b40" identifier = (binary_expression "local_90 + -0xc8b40" identifier + number_literal)) ;) (if_statement "if (*(undefined ***)(*piVar4 + 0xc) != local_ac) {\n                    /* try { // try from 00191525 to 00191526 has its CatchHandler @ 001915f2 */\n    (*(code *)*(undefined ***)(*piVar4 + 0xc))(piVar4,local_a0);\n  }" if (parenthesized_expression "(*(undefined ***)(*piVar4 + 0xc) != local_ac)" ( (binary_expression "*(undefined ***)(*piVar4 + 0xc) != local_ac" (pointer_expression "*(undefined ***)(*piVar4 + 0xc)" * (cast_expression "(undefined ***)(*piVar4 + 0xc)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(*piVar4 + 0xc)" ( (binary_expression "*piVar4 + 0xc" (pointer_expression "*piVar4" * identifier) + number_literal) )))) != identifier) )) (compound_statement "{\n                    /* try { // try from 00191525 to 00191526 has its CatchHandler @ 001915f2 */\n    (*(code *)*(undefined ***)(*piVar4 + 0xc))(piVar4,local_a0);\n  }" { comment (expression_statement "(*(code *)*(undefined ***)(*piVar4 + 0xc))(piVar4,local_a0);" (call_expression "(*(code *)*(undefined ***)(*piVar4 + 0xc))(piVar4,local_a0)" (parenthesized_expression "(*(code *)*(undefined ***)(*piVar4 + 0xc))" ( (pointer_expression "*(code *)*(undefined ***)(*piVar4 + 0xc)" * (cast_expression "(code *)*(undefined ***)(*piVar4 + 0xc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*(undefined ***)(*piVar4 + 0xc)" * (cast_expression "(undefined ***)(*piVar4 + 0xc)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(*piVar4 + 0xc)" ( (binary_expression "*piVar4 + 0xc" (pointer_expression "*piVar4" * identifier) + number_literal) )))))) )) (argument_list "(piVar4,local_a0)" ( identifier , identifier ))) ;) })) (expression_statement "piVar10 = &local_cc;" (assignment_expression "piVar10 = &local_cc" identifier = (pointer_expression "&local_cc" & identifier)) ;) (expression_statement "param_1[5] = param_1[5] + 1;" (assignment_expression "param_1[5] = param_1[5] + 1" (subscript_expression "param_1[5]" identifier [ number_literal ]) = (binary_expression "param_1[5] + 1" (subscript_expression "param_1[5]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "(**(code **)(*(int *)*param_1 + 0xc))((int *)*param_1);" (call_expression "(**(code **)(*(int *)*param_1 + 0xc))((int *)*param_1)" (parenthesized_expression "(**(code **)(*(int *)*param_1 + 0xc))" ( (pointer_expression "**(code **)(*(int *)*param_1 + 0xc)" * (pointer_expression "*(code **)(*(int *)*param_1 + 0xc)" * (cast_expression "(code **)(*(int *)*param_1 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)*param_1 + 0xc)" ( (binary_expression "*(int *)*param_1 + 0xc" (pointer_expression "*(int *)*param_1" * (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) + number_literal) ))))) )) (argument_list "((int *)*param_1)" ( (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) ))) ;) (expression_statement "local_94 = local_90 + 0xde;" (assignment_expression "local_94 = local_90 + 0xde" identifier = (binary_expression "local_90 + 0xde" identifier + number_literal)) ;) (expression_statement "local_a4 = local_90 + -0xc8b3c;" (assignment_expression "local_a4 = local_90 + -0xc8b3c" identifier = (binary_expression "local_90 + -0xc8b3c" identifier + number_literal)) ;) (expression_statement "local_a8 = local_44;" (assignment_expression "local_a8 = local_44" identifier = identifier) ;) (expression_statement "local_9c = &local_4c;" (assignment_expression "local_9c = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;) (do_statement "do {\n    puVar1 = (undefined4 *)*local_94;\n    puVar9 = (undefined1 *)piVar10;\n    if ((puVar1[2] != 0) && ((*(byte *)(puVar1 + 5) & 1) != 0)) {\n      local_98 = (int *)*puVar1;\n      if (piVar4[3] == 0) {\n        ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n        if (ppuVar2 == local_90 + -0xc8a2c) {\n          iVar8 = piVar4[0xb];\n          local_4c = local_a8;\n          iVar5 = -1;\n          if (iVar8 != 0) {\n            *(int *)((int)piVar10 + -0x10) = iVar8;\n            *(undefined4 *)((int)piVar10 + -0x14) = 0x1910c6;\n            local_b0 = iVar8;\n            sVar6 = strlen(*(char **)((int)piVar10 + -0x10));\n            iVar5 = sVar6 + local_b0;\n            iVar8 = local_b0;\n          }\n          *(undefined4 *)((int)piVar10 + -4) = 0;\n          *(int *)((int)piVar10 + -8) = iVar5;\n          *(int *)((int)piVar10 + -0xc) = iVar8;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1910e0;\n          FUN_00050e40();\n        }\n        else {\n          *(int **)((int)piVar10 + -0xc) = piVar4;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1914bc;\n          (*(code *)ppuVar2)();\n          piVar10 = (int *)((int)piVar10 + -4);\n        }\n        piVar7 = (int *)piVar4[2];\n        if (local_4c == local_a8) {\n          if (local_48 != 0) {\n            if (local_48 == 1) {\n              *(undefined1 *)piVar7 = (undefined1)local_44[0];\n              piVar7 = (int *)piVar4[2];\n            }\n            else {\n              *(int *)((int)piVar10 + -8) = local_48;\n              *(int **)((int)piVar10 + -0xc) = local_a8;\n              *(int **)((int)piVar10 + -0x10) = piVar7;\n              *(undefined4 *)((int)piVar10 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8));\n              piVar7 = (int *)piVar4[2];\n            }\n          }\n          piVar4[3] = local_48;\n          *(undefined1 *)((int)piVar7 + local_48) = 0;\n          iVar8 = local_44[0];\n        }\n        else {\n          if (piVar7 == piVar4 + 4) {\n            piVar4[2] = (int)local_4c;\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n          }\n          else {\n            piVar4[2] = (int)local_4c;\n            iVar8 = piVar4[4];\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n            local_4c = piVar7;\n            if (piVar7 != (int *)0x0) goto LAB_00191120;\n          }\n          local_4c = local_a8;\n          iVar8 = local_44[0];\n        }\nLAB_00191120:\n        local_44[0] = iVar8;\n        local_48 = 0;\n        *(undefined1 *)local_4c = 0;\n        if (local_4c != local_a8) {\n          *(int **)((int)piVar10 + -0x10) = local_4c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x191144;\n          FUN_001e6db0();\n        }\n      }\n      *(int *)((int)piVar10 + -4) = piVar4[2];\n      *(undefined4 *)((int)piVar10 + -8) = param_2;\n      *(int *)((int)piVar10 + -0xc) = (int)local_90 + -0xf4943;\n      *(int **)((int)piVar10 + -0x10) = local_98;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191165;\n      FUN_000653f0();\n      puVar9 = (undefined1 *)piVar10;\n    }\n    *(int ***)(puVar9 + -0x10) = local_9c;\n    *(undefined4 *)(puVar9 + -0x14) = 0x19117c;\n    FUN_0018fff0();\n    if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {\n      *(int ***)(puVar9 + -0x10) = local_9c;\n      *(undefined4 *)(puVar9 + -0x14) = 0x1911a8;\n      thunk_FUN_00190010();\n    }\n    ppuVar2 = *(undefined ***)(*piVar4 + 0x10);\n    if (ppuVar2 == local_a4) {\n      piVar10 = (int *)piVar4[9];\n      iVar8 = *piVar10;\n      *(int **)(puVar9 + -8) = piVar4;\n      *(undefined4 **)(puVar9 + -0xc) = param_1;\n      *(int **)(puVar9 + -0x10) = piVar10;\n      pcVar3 = *(code **)(iVar8 + 8);\n      *(undefined4 *)(puVar9 + -0x14) = 0x1911ca;\n      (*pcVar3)();\n    }\n    else {\n      *(undefined4 **)(puVar9 + -0xc) = param_1;\n      *(int **)(puVar9 + -0x10) = piVar4;\n      *(undefined4 *)(puVar9 + -0x14) = 0x1913ff;\n      (*(code *)ppuVar2)();\n    }\n    piVar10 = (int *)puVar9;\n    if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {\n      *(int ***)(puVar9 + -0xc) = local_9c;\n      *(int **)(puVar9 + -0x10) = &local_84;\n      *(undefined4 *)(puVar9 + -0x14) = 0x191202;\n      FUN_001900d0();\n      puVar11 = puVar9 + -4;\n      puVar1 = (undefined4 *)*local_94;\n      piVar10 = (int *)(puVar9 + -4);\n      if ((puVar1[2] != 0) && (piVar10 = (int *)(puVar9 + -4), (*(byte *)(puVar1 + 5) & 1) != 0)) {\n        local_b8 = *puVar1;\n        local_bc = local_7c / 1000;\n        local_98 = (int *)((local_7c % 1000) * 1000);\n        local_c0 = local_80 / 1000;\n        local_b0 = (local_80 % 1000) * 1000;\n        local_c4 = local_84 / 1000;\n        local_b4 = (local_84 % 1000) * 1000;\n        if (piVar4[3] == 0) {\n          ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n          if (ppuVar2 == local_90 + -0xc8a2c) {\n            iVar8 = piVar4[0xb];\n            local_c8 = local_5c;\n            iVar5 = -1;\n            local_64 = local_c8;\n            if (iVar8 != 0) {\n              *(int *)(puVar9 + -0x14) = iVar8;\n              *(undefined4 *)(puVar9 + -0x18) = 0x1912ff;\n              local_cc = iVar8;\n              sVar6 = strlen(*(char **)(puVar9 + -0x14));\n              iVar5 = sVar6 + local_cc;\n              iVar8 = local_cc;\n            }\n            puVar11 = puVar9 + -4;\n            *(undefined4 *)(puVar9 + -8) = 0;\n            *(int *)(puVar9 + -0xc) = iVar5;\n            *(int *)(puVar9 + -0x10) = iVar8;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191317;\n            FUN_00050e40();\n          }\n          else {\n            *(int **)(puVar9 + -0x10) = piVar4;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191579;\n            (*(code *)ppuVar2)();\n            local_c8 = local_5c;\n            puVar11 = puVar9 + -8;\n          }\n          piVar10 = (int *)piVar4[2];\n          if (local_64 == local_c8) {\n            if (local_60 != 0) {\n              if (local_60 == 1) {\n                *(undefined1 *)piVar10 = (undefined1)local_5c[0];\n                piVar10 = (int *)piVar4[2];\n              }\n              else {\n                *(int *)(puVar11 + -8) = local_60;\n                *(int **)(puVar11 + -0xc) = local_c8;\n                *(int **)(puVar11 + -0x10) = piVar10;\n                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;\n                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));\n                piVar10 = (int *)piVar4[2];\n              }\n            }\n            piVar4[3] = local_60;\n            *(undefined1 *)((int)piVar10 + local_60) = 0;\n            piVar10 = local_64;\n            iVar8 = local_5c[0];\n          }\n          else {\n            if (piVar10 == piVar4 + 4) {\n              piVar4[2] = (int)local_64;\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n            }\n            else {\n              piVar4[2] = (int)local_64;\n              iVar8 = piVar4[4];\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n              local_64 = piVar10;\n              if (piVar10 != (int *)0x0) goto LAB_00191357;\n            }\n            local_64 = local_c8;\n            local_c8 = local_5c;\n            piVar10 = local_c8;\n            iVar8 = local_5c[0];\n          }\nLAB_00191357:\n          local_5c[0] = iVar8;\n          local_60 = 0;\n          *(undefined1 *)piVar10 = 0;\n          if (local_64 != local_c8) {\n            *(int **)(puVar11 + -0x10) = local_64;\n            *(undefined4 *)(puVar11 + -0x14) = 0x19137b;\n            FUN_001e6db0();\n          }\n        }\n        *(int **)(puVar11 + -0xc) = local_98;\n        *(int *)(puVar11 + -0x10) = local_bc;\n        *(int *)(puVar11 + -0x14) = local_b0;\n        *(int *)(puVar11 + -0x18) = local_c0;\n        *(int *)(puVar11 + -0x1c) = local_b4;\n        *(int *)(puVar11 + -0x20) = local_c4;\n        *(int *)(puVar11 + -0x24) = piVar4[2];\n        *(undefined4 *)(puVar11 + -0x28) = param_2;\n        *(undefined ***)(puVar11 + -0x2c) = local_90 + -0x3d24b;\n        *(undefined4 *)(puVar11 + -0x30) = local_b8;\n        *(undefined4 *)(puVar11 + -0x34) = 0x1913c3;\n        FUN_000653f0();\n        piVar10 = (int *)puVar11;\n      }\n    }\n    iVar8 = *(int *)*param_1;\n    *(int **)((int)piVar10 + -0x10) = (int *)*param_1;\n    pcVar3 = *(code **)(iVar8 + 8);\n    *(undefined4 *)((int)piVar10 + -0x14) = 0x190f43;\n    (*pcVar3)();\n    param_1[5] = param_1[5] + -1;\n    *(undefined4 **)((int)piVar10 + -8) = local_a0;\n    *(int **)((int)piVar10 + -0xc) = piVar4;\n    *(undefined4 **)((int)piVar10 + -0x10) = param_1;\n                    /* try { // try from 00190f52 to 00190f56 has its CatchHandler @ 001915f9 */\n    *(undefined4 *)((int)piVar10 + -0x14) = 0x190f57;\n    local_98 = (int *)FUN_00190b90();\n    if (local_98 == (int *)0x0) {\n      *(undefined4 **)((int)piVar10 + -0x10) = param_1;\n                    /* try { // try from 00191414 to 00191440 has its CatchHandler @ 001915f9 */\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191419;\n      local_98 = (int *)FUN_00190880();\n      if (local_98 != (int *)0x0) goto LAB_00190f68;\n    }\n    else {\nLAB_00190f68:\n      local_78[0] = 0;\n      ppuVar2 = *(undefined ***)(*local_98 + 0xc);\n      if (ppuVar2 != local_ac) {\n        *(undefined4 **)((int)piVar10 + -0xc) = local_a0;\n        *(int **)((int)piVar10 + -0x10) = local_98;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191441;\n        (*(code *)ppuVar2)();\n      }\n      param_1[5] = param_1[5] + 1;\n    }\n    iVar8 = *(int *)*param_1;\n    *(int **)((int)piVar10 + -0x10) = (int *)*param_1;\n    pcVar3 = *(code **)(iVar8 + 0xc);\n    *(undefined4 *)((int)piVar10 + -0x14) = 0x190f95;\n    (*pcVar3)();\n    ppuVar2 = *(undefined ***)(*piVar4 + 4);\n    if (ppuVar2 == local_90 + -0xc8ab8) {\n      *piVar4 = (int)(local_90 + -0x307b);\n      piVar7 = (int *)piVar4[9];\n      if (piVar7 != (int *)0x0) {\n        iVar8 = *piVar7;\n        *(int **)((int)piVar10 + -0x10) = piVar7;\n        pcVar3 = *(code **)(iVar8 + 4);\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x190fc9;\n        (*pcVar3)();\n      }\n      iVar8 = piVar4[10];\n      if (iVar8 != 0) {\n        if (*(int *)(iVar8 + 4) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 100;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915d4;\n          FUN_00069d00();\n        }\n        if (*(int *)(iVar8 + 8) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x65;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined1 **)((int)piVar10 + -0x14) = &LAB_001915f2;\n          FUN_00069d00();\n        }\n        if ((*(int *)(iVar8 + 0xc) != 0) || (*(int *)(iVar8 + 0x10) != 0)) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d215;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x2c;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915b6;\n          FUN_00069d00();\n        }\n        *(undefined4 *)((int)piVar10 + -0xc) = 0x14;\n        *(int *)((int)piVar10 + -0x10) = iVar8;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191010;\n        FUN_001e6d90();\n      }\n      *piVar4 = (int)(local_90 + -0x1717);\n      if ((int *)piVar4[2] != piVar4 + 4) {\n        *(int **)((int)piVar10 + -0x10) = (int *)piVar4[2];\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191034;\n        FUN_001e6db0();\n      }\n      *(undefined4 *)((int)piVar10 + -0xc) = 0x30;\n      *(int **)((int)piVar10 + -0x10) = piVar4;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191048;\n      FUN_001e6d90();\n      piVar4 = local_98;\n    }\n    else {\n      *(int **)((int)piVar10 + -0x10) = piVar4;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x1913d6;\n      (*(code *)ppuVar2)();\n      piVar4 = local_98;\n    }\n    local_98 = piVar4;\n    if (piVar4 == (int *)0x0) {\n      return 1;\n    }\n  } while( true );" do (compound_statement "{\n    puVar1 = (undefined4 *)*local_94;\n    puVar9 = (undefined1 *)piVar10;\n    if ((puVar1[2] != 0) && ((*(byte *)(puVar1 + 5) & 1) != 0)) {\n      local_98 = (int *)*puVar1;\n      if (piVar4[3] == 0) {\n        ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n        if (ppuVar2 == local_90 + -0xc8a2c) {\n          iVar8 = piVar4[0xb];\n          local_4c = local_a8;\n          iVar5 = -1;\n          if (iVar8 != 0) {\n            *(int *)((int)piVar10 + -0x10) = iVar8;\n            *(undefined4 *)((int)piVar10 + -0x14) = 0x1910c6;\n            local_b0 = iVar8;\n            sVar6 = strlen(*(char **)((int)piVar10 + -0x10));\n            iVar5 = sVar6 + local_b0;\n            iVar8 = local_b0;\n          }\n          *(undefined4 *)((int)piVar10 + -4) = 0;\n          *(int *)((int)piVar10 + -8) = iVar5;\n          *(int *)((int)piVar10 + -0xc) = iVar8;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1910e0;\n          FUN_00050e40();\n        }\n        else {\n          *(int **)((int)piVar10 + -0xc) = piVar4;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1914bc;\n          (*(code *)ppuVar2)();\n          piVar10 = (int *)((int)piVar10 + -4);\n        }\n        piVar7 = (int *)piVar4[2];\n        if (local_4c == local_a8) {\n          if (local_48 != 0) {\n            if (local_48 == 1) {\n              *(undefined1 *)piVar7 = (undefined1)local_44[0];\n              piVar7 = (int *)piVar4[2];\n            }\n            else {\n              *(int *)((int)piVar10 + -8) = local_48;\n              *(int **)((int)piVar10 + -0xc) = local_a8;\n              *(int **)((int)piVar10 + -0x10) = piVar7;\n              *(undefined4 *)((int)piVar10 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8));\n              piVar7 = (int *)piVar4[2];\n            }\n          }\n          piVar4[3] = local_48;\n          *(undefined1 *)((int)piVar7 + local_48) = 0;\n          iVar8 = local_44[0];\n        }\n        else {\n          if (piVar7 == piVar4 + 4) {\n            piVar4[2] = (int)local_4c;\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n          }\n          else {\n            piVar4[2] = (int)local_4c;\n            iVar8 = piVar4[4];\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n            local_4c = piVar7;\n            if (piVar7 != (int *)0x0) goto LAB_00191120;\n          }\n          local_4c = local_a8;\n          iVar8 = local_44[0];\n        }\nLAB_00191120:\n        local_44[0] = iVar8;\n        local_48 = 0;\n        *(undefined1 *)local_4c = 0;\n        if (local_4c != local_a8) {\n          *(int **)((int)piVar10 + -0x10) = local_4c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x191144;\n          FUN_001e6db0();\n        }\n      }\n      *(int *)((int)piVar10 + -4) = piVar4[2];\n      *(undefined4 *)((int)piVar10 + -8) = param_2;\n      *(int *)((int)piVar10 + -0xc) = (int)local_90 + -0xf4943;\n      *(int **)((int)piVar10 + -0x10) = local_98;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191165;\n      FUN_000653f0();\n      puVar9 = (undefined1 *)piVar10;\n    }\n    *(int ***)(puVar9 + -0x10) = local_9c;\n    *(undefined4 *)(puVar9 + -0x14) = 0x19117c;\n    FUN_0018fff0();\n    if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {\n      *(int ***)(puVar9 + -0x10) = local_9c;\n      *(undefined4 *)(puVar9 + -0x14) = 0x1911a8;\n      thunk_FUN_00190010();\n    }\n    ppuVar2 = *(undefined ***)(*piVar4 + 0x10);\n    if (ppuVar2 == local_a4) {\n      piVar10 = (int *)piVar4[9];\n      iVar8 = *piVar10;\n      *(int **)(puVar9 + -8) = piVar4;\n      *(undefined4 **)(puVar9 + -0xc) = param_1;\n      *(int **)(puVar9 + -0x10) = piVar10;\n      pcVar3 = *(code **)(iVar8 + 8);\n      *(undefined4 *)(puVar9 + -0x14) = 0x1911ca;\n      (*pcVar3)();\n    }\n    else {\n      *(undefined4 **)(puVar9 + -0xc) = param_1;\n      *(int **)(puVar9 + -0x10) = piVar4;\n      *(undefined4 *)(puVar9 + -0x14) = 0x1913ff;\n      (*(code *)ppuVar2)();\n    }\n    piVar10 = (int *)puVar9;\n    if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {\n      *(int ***)(puVar9 + -0xc) = local_9c;\n      *(int **)(puVar9 + -0x10) = &local_84;\n      *(undefined4 *)(puVar9 + -0x14) = 0x191202;\n      FUN_001900d0();\n      puVar11 = puVar9 + -4;\n      puVar1 = (undefined4 *)*local_94;\n      piVar10 = (int *)(puVar9 + -4);\n      if ((puVar1[2] != 0) && (piVar10 = (int *)(puVar9 + -4), (*(byte *)(puVar1 + 5) & 1) != 0)) {\n        local_b8 = *puVar1;\n        local_bc = local_7c / 1000;\n        local_98 = (int *)((local_7c % 1000) * 1000);\n        local_c0 = local_80 / 1000;\n        local_b0 = (local_80 % 1000) * 1000;\n        local_c4 = local_84 / 1000;\n        local_b4 = (local_84 % 1000) * 1000;\n        if (piVar4[3] == 0) {\n          ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n          if (ppuVar2 == local_90 + -0xc8a2c) {\n            iVar8 = piVar4[0xb];\n            local_c8 = local_5c;\n            iVar5 = -1;\n            local_64 = local_c8;\n            if (iVar8 != 0) {\n              *(int *)(puVar9 + -0x14) = iVar8;\n              *(undefined4 *)(puVar9 + -0x18) = 0x1912ff;\n              local_cc = iVar8;\n              sVar6 = strlen(*(char **)(puVar9 + -0x14));\n              iVar5 = sVar6 + local_cc;\n              iVar8 = local_cc;\n            }\n            puVar11 = puVar9 + -4;\n            *(undefined4 *)(puVar9 + -8) = 0;\n            *(int *)(puVar9 + -0xc) = iVar5;\n            *(int *)(puVar9 + -0x10) = iVar8;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191317;\n            FUN_00050e40();\n          }\n          else {\n            *(int **)(puVar9 + -0x10) = piVar4;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191579;\n            (*(code *)ppuVar2)();\n            local_c8 = local_5c;\n            puVar11 = puVar9 + -8;\n          }\n          piVar10 = (int *)piVar4[2];\n          if (local_64 == local_c8) {\n            if (local_60 != 0) {\n              if (local_60 == 1) {\n                *(undefined1 *)piVar10 = (undefined1)local_5c[0];\n                piVar10 = (int *)piVar4[2];\n              }\n              else {\n                *(int *)(puVar11 + -8) = local_60;\n                *(int **)(puVar11 + -0xc) = local_c8;\n                *(int **)(puVar11 + -0x10) = piVar10;\n                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;\n                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));\n                piVar10 = (int *)piVar4[2];\n              }\n            }\n            piVar4[3] = local_60;\n            *(undefined1 *)((int)piVar10 + local_60) = 0;\n            piVar10 = local_64;\n            iVar8 = local_5c[0];\n          }\n          else {\n            if (piVar10 == piVar4 + 4) {\n              piVar4[2] = (int)local_64;\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n            }\n            else {\n              piVar4[2] = (int)local_64;\n              iVar8 = piVar4[4];\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n              local_64 = piVar10;\n              if (piVar10 != (int *)0x0) goto LAB_00191357;\n            }\n            local_64 = local_c8;\n            local_c8 = local_5c;\n            piVar10 = local_c8;\n            iVar8 = local_5c[0];\n          }\nLAB_00191357:\n          local_5c[0] = iVar8;\n          local_60 = 0;\n          *(undefined1 *)piVar10 = 0;\n          if (local_64 != local_c8) {\n            *(int **)(puVar11 + -0x10) = local_64;\n            *(undefined4 *)(puVar11 + -0x14) = 0x19137b;\n            FUN_001e6db0();\n          }\n        }\n        *(int **)(puVar11 + -0xc) = local_98;\n        *(int *)(puVar11 + -0x10) = local_bc;\n        *(int *)(puVar11 + -0x14) = local_b0;\n        *(int *)(puVar11 + -0x18) = local_c0;\n        *(int *)(puVar11 + -0x1c) = local_b4;\n        *(int *)(puVar11 + -0x20) = local_c4;\n        *(int *)(puVar11 + -0x24) = piVar4[2];\n        *(undefined4 *)(puVar11 + -0x28) = param_2;\n        *(undefined ***)(puVar11 + -0x2c) = local_90 + -0x3d24b;\n        *(undefined4 *)(puVar11 + -0x30) = local_b8;\n        *(undefined4 *)(puVar11 + -0x34) = 0x1913c3;\n        FUN_000653f0();\n        piVar10 = (int *)puVar11;\n      }\n    }\n    iVar8 = *(int *)*param_1;\n    *(int **)((int)piVar10 + -0x10) = (int *)*param_1;\n    pcVar3 = *(code **)(iVar8 + 8);\n    *(undefined4 *)((int)piVar10 + -0x14) = 0x190f43;\n    (*pcVar3)();\n    param_1[5] = param_1[5] + -1;\n    *(undefined4 **)((int)piVar10 + -8) = local_a0;\n    *(int **)((int)piVar10 + -0xc) = piVar4;\n    *(undefined4 **)((int)piVar10 + -0x10) = param_1;\n                    /* try { // try from 00190f52 to 00190f56 has its CatchHandler @ 001915f9 */\n    *(undefined4 *)((int)piVar10 + -0x14) = 0x190f57;\n    local_98 = (int *)FUN_00190b90();\n    if (local_98 == (int *)0x0) {\n      *(undefined4 **)((int)piVar10 + -0x10) = param_1;\n                    /* try { // try from 00191414 to 00191440 has its CatchHandler @ 001915f9 */\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191419;\n      local_98 = (int *)FUN_00190880();\n      if (local_98 != (int *)0x0) goto LAB_00190f68;\n    }\n    else {\nLAB_00190f68:\n      local_78[0] = 0;\n      ppuVar2 = *(undefined ***)(*local_98 + 0xc);\n      if (ppuVar2 != local_ac) {\n        *(undefined4 **)((int)piVar10 + -0xc) = local_a0;\n        *(int **)((int)piVar10 + -0x10) = local_98;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191441;\n        (*(code *)ppuVar2)();\n      }\n      param_1[5] = param_1[5] + 1;\n    }\n    iVar8 = *(int *)*param_1;\n    *(int **)((int)piVar10 + -0x10) = (int *)*param_1;\n    pcVar3 = *(code **)(iVar8 + 0xc);\n    *(undefined4 *)((int)piVar10 + -0x14) = 0x190f95;\n    (*pcVar3)();\n    ppuVar2 = *(undefined ***)(*piVar4 + 4);\n    if (ppuVar2 == local_90 + -0xc8ab8) {\n      *piVar4 = (int)(local_90 + -0x307b);\n      piVar7 = (int *)piVar4[9];\n      if (piVar7 != (int *)0x0) {\n        iVar8 = *piVar7;\n        *(int **)((int)piVar10 + -0x10) = piVar7;\n        pcVar3 = *(code **)(iVar8 + 4);\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x190fc9;\n        (*pcVar3)();\n      }\n      iVar8 = piVar4[10];\n      if (iVar8 != 0) {\n        if (*(int *)(iVar8 + 4) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 100;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915d4;\n          FUN_00069d00();\n        }\n        if (*(int *)(iVar8 + 8) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x65;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined1 **)((int)piVar10 + -0x14) = &LAB_001915f2;\n          FUN_00069d00();\n        }\n        if ((*(int *)(iVar8 + 0xc) != 0) || (*(int *)(iVar8 + 0x10) != 0)) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d215;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x2c;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915b6;\n          FUN_00069d00();\n        }\n        *(undefined4 *)((int)piVar10 + -0xc) = 0x14;\n        *(int *)((int)piVar10 + -0x10) = iVar8;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191010;\n        FUN_001e6d90();\n      }\n      *piVar4 = (int)(local_90 + -0x1717);\n      if ((int *)piVar4[2] != piVar4 + 4) {\n        *(int **)((int)piVar10 + -0x10) = (int *)piVar4[2];\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191034;\n        FUN_001e6db0();\n      }\n      *(undefined4 *)((int)piVar10 + -0xc) = 0x30;\n      *(int **)((int)piVar10 + -0x10) = piVar4;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191048;\n      FUN_001e6d90();\n      piVar4 = local_98;\n    }\n    else {\n      *(int **)((int)piVar10 + -0x10) = piVar4;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x1913d6;\n      (*(code *)ppuVar2)();\n      piVar4 = local_98;\n    }\n    local_98 = piVar4;\n    if (piVar4 == (int *)0x0) {\n      return 1;\n    }\n  }" { (expression_statement "puVar1 = (undefined4 *)*local_94;" (assignment_expression "puVar1 = (undefined4 *)*local_94" identifier = (cast_expression "(undefined4 *)*local_94" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_94" * identifier))) ;) (expression_statement "puVar9 = (undefined1 *)piVar10;" (assignment_expression "puVar9 = (undefined1 *)piVar10" identifier = (cast_expression "(undefined1 *)piVar10" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((puVar1[2] != 0) && ((*(byte *)(puVar1 + 5) & 1) != 0)) {\n      local_98 = (int *)*puVar1;\n      if (piVar4[3] == 0) {\n        ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n        if (ppuVar2 == local_90 + -0xc8a2c) {\n          iVar8 = piVar4[0xb];\n          local_4c = local_a8;\n          iVar5 = -1;\n          if (iVar8 != 0) {\n            *(int *)((int)piVar10 + -0x10) = iVar8;\n            *(undefined4 *)((int)piVar10 + -0x14) = 0x1910c6;\n            local_b0 = iVar8;\n            sVar6 = strlen(*(char **)((int)piVar10 + -0x10));\n            iVar5 = sVar6 + local_b0;\n            iVar8 = local_b0;\n          }\n          *(undefined4 *)((int)piVar10 + -4) = 0;\n          *(int *)((int)piVar10 + -8) = iVar5;\n          *(int *)((int)piVar10 + -0xc) = iVar8;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1910e0;\n          FUN_00050e40();\n        }\n        else {\n          *(int **)((int)piVar10 + -0xc) = piVar4;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1914bc;\n          (*(code *)ppuVar2)();\n          piVar10 = (int *)((int)piVar10 + -4);\n        }\n        piVar7 = (int *)piVar4[2];\n        if (local_4c == local_a8) {\n          if (local_48 != 0) {\n            if (local_48 == 1) {\n              *(undefined1 *)piVar7 = (undefined1)local_44[0];\n              piVar7 = (int *)piVar4[2];\n            }\n            else {\n              *(int *)((int)piVar10 + -8) = local_48;\n              *(int **)((int)piVar10 + -0xc) = local_a8;\n              *(int **)((int)piVar10 + -0x10) = piVar7;\n              *(undefined4 *)((int)piVar10 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8));\n              piVar7 = (int *)piVar4[2];\n            }\n          }\n          piVar4[3] = local_48;\n          *(undefined1 *)((int)piVar7 + local_48) = 0;\n          iVar8 = local_44[0];\n        }\n        else {\n          if (piVar7 == piVar4 + 4) {\n            piVar4[2] = (int)local_4c;\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n          }\n          else {\n            piVar4[2] = (int)local_4c;\n            iVar8 = piVar4[4];\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n            local_4c = piVar7;\n            if (piVar7 != (int *)0x0) goto LAB_00191120;\n          }\n          local_4c = local_a8;\n          iVar8 = local_44[0];\n        }\nLAB_00191120:\n        local_44[0] = iVar8;\n        local_48 = 0;\n        *(undefined1 *)local_4c = 0;\n        if (local_4c != local_a8) {\n          *(int **)((int)piVar10 + -0x10) = local_4c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x191144;\n          FUN_001e6db0();\n        }\n      }\n      *(int *)((int)piVar10 + -4) = piVar4[2];\n      *(undefined4 *)((int)piVar10 + -8) = param_2;\n      *(int *)((int)piVar10 + -0xc) = (int)local_90 + -0xf4943;\n      *(int **)((int)piVar10 + -0x10) = local_98;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191165;\n      FUN_000653f0();\n      puVar9 = (undefined1 *)piVar10;\n    }" if (parenthesized_expression "((puVar1[2] != 0) && ((*(byte *)(puVar1 + 5) & 1) != 0))" ( (binary_expression "(puVar1[2] != 0) && ((*(byte *)(puVar1 + 5) & 1) != 0)" (parenthesized_expression "(puVar1[2] != 0)" ( (binary_expression "puVar1[2] != 0" (subscript_expression "puVar1[2]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "((*(byte *)(puVar1 + 5) & 1) != 0)" ( (binary_expression "(*(byte *)(puVar1 + 5) & 1) != 0" (parenthesized_expression "(*(byte *)(puVar1 + 5) & 1)" ( (binary_expression "*(byte *)(puVar1 + 5) & 1" (pointer_expression "*(byte *)(puVar1 + 5)" * (cast_expression "(byte *)(puVar1 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 5)" ( (binary_expression "puVar1 + 5" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n      local_98 = (int *)*puVar1;\n      if (piVar4[3] == 0) {\n        ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n        if (ppuVar2 == local_90 + -0xc8a2c) {\n          iVar8 = piVar4[0xb];\n          local_4c = local_a8;\n          iVar5 = -1;\n          if (iVar8 != 0) {\n            *(int *)((int)piVar10 + -0x10) = iVar8;\n            *(undefined4 *)((int)piVar10 + -0x14) = 0x1910c6;\n            local_b0 = iVar8;\n            sVar6 = strlen(*(char **)((int)piVar10 + -0x10));\n            iVar5 = sVar6 + local_b0;\n            iVar8 = local_b0;\n          }\n          *(undefined4 *)((int)piVar10 + -4) = 0;\n          *(int *)((int)piVar10 + -8) = iVar5;\n          *(int *)((int)piVar10 + -0xc) = iVar8;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1910e0;\n          FUN_00050e40();\n        }\n        else {\n          *(int **)((int)piVar10 + -0xc) = piVar4;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1914bc;\n          (*(code *)ppuVar2)();\n          piVar10 = (int *)((int)piVar10 + -4);\n        }\n        piVar7 = (int *)piVar4[2];\n        if (local_4c == local_a8) {\n          if (local_48 != 0) {\n            if (local_48 == 1) {\n              *(undefined1 *)piVar7 = (undefined1)local_44[0];\n              piVar7 = (int *)piVar4[2];\n            }\n            else {\n              *(int *)((int)piVar10 + -8) = local_48;\n              *(int **)((int)piVar10 + -0xc) = local_a8;\n              *(int **)((int)piVar10 + -0x10) = piVar7;\n              *(undefined4 *)((int)piVar10 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8));\n              piVar7 = (int *)piVar4[2];\n            }\n          }\n          piVar4[3] = local_48;\n          *(undefined1 *)((int)piVar7 + local_48) = 0;\n          iVar8 = local_44[0];\n        }\n        else {\n          if (piVar7 == piVar4 + 4) {\n            piVar4[2] = (int)local_4c;\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n          }\n          else {\n            piVar4[2] = (int)local_4c;\n            iVar8 = piVar4[4];\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n            local_4c = piVar7;\n            if (piVar7 != (int *)0x0) goto LAB_00191120;\n          }\n          local_4c = local_a8;\n          iVar8 = local_44[0];\n        }\nLAB_00191120:\n        local_44[0] = iVar8;\n        local_48 = 0;\n        *(undefined1 *)local_4c = 0;\n        if (local_4c != local_a8) {\n          *(int **)((int)piVar10 + -0x10) = local_4c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x191144;\n          FUN_001e6db0();\n        }\n      }\n      *(int *)((int)piVar10 + -4) = piVar4[2];\n      *(undefined4 *)((int)piVar10 + -8) = param_2;\n      *(int *)((int)piVar10 + -0xc) = (int)local_90 + -0xf4943;\n      *(int **)((int)piVar10 + -0x10) = local_98;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191165;\n      FUN_000653f0();\n      puVar9 = (undefined1 *)piVar10;\n    }" { (expression_statement "local_98 = (int *)*puVar1;" (assignment_expression "local_98 = (int *)*puVar1" identifier = (cast_expression "(int *)*puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar1" * identifier))) ;) (if_statement "if (piVar4[3] == 0) {\n        ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n        if (ppuVar2 == local_90 + -0xc8a2c) {\n          iVar8 = piVar4[0xb];\n          local_4c = local_a8;\n          iVar5 = -1;\n          if (iVar8 != 0) {\n            *(int *)((int)piVar10 + -0x10) = iVar8;\n            *(undefined4 *)((int)piVar10 + -0x14) = 0x1910c6;\n            local_b0 = iVar8;\n            sVar6 = strlen(*(char **)((int)piVar10 + -0x10));\n            iVar5 = sVar6 + local_b0;\n            iVar8 = local_b0;\n          }\n          *(undefined4 *)((int)piVar10 + -4) = 0;\n          *(int *)((int)piVar10 + -8) = iVar5;\n          *(int *)((int)piVar10 + -0xc) = iVar8;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1910e0;\n          FUN_00050e40();\n        }\n        else {\n          *(int **)((int)piVar10 + -0xc) = piVar4;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1914bc;\n          (*(code *)ppuVar2)();\n          piVar10 = (int *)((int)piVar10 + -4);\n        }\n        piVar7 = (int *)piVar4[2];\n        if (local_4c == local_a8) {\n          if (local_48 != 0) {\n            if (local_48 == 1) {\n              *(undefined1 *)piVar7 = (undefined1)local_44[0];\n              piVar7 = (int *)piVar4[2];\n            }\n            else {\n              *(int *)((int)piVar10 + -8) = local_48;\n              *(int **)((int)piVar10 + -0xc) = local_a8;\n              *(int **)((int)piVar10 + -0x10) = piVar7;\n              *(undefined4 *)((int)piVar10 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8));\n              piVar7 = (int *)piVar4[2];\n            }\n          }\n          piVar4[3] = local_48;\n          *(undefined1 *)((int)piVar7 + local_48) = 0;\n          iVar8 = local_44[0];\n        }\n        else {\n          if (piVar7 == piVar4 + 4) {\n            piVar4[2] = (int)local_4c;\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n          }\n          else {\n            piVar4[2] = (int)local_4c;\n            iVar8 = piVar4[4];\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n            local_4c = piVar7;\n            if (piVar7 != (int *)0x0) goto LAB_00191120;\n          }\n          local_4c = local_a8;\n          iVar8 = local_44[0];\n        }\nLAB_00191120:\n        local_44[0] = iVar8;\n        local_48 = 0;\n        *(undefined1 *)local_4c = 0;\n        if (local_4c != local_a8) {\n          *(int **)((int)piVar10 + -0x10) = local_4c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x191144;\n          FUN_001e6db0();\n        }\n      }" if (parenthesized_expression "(piVar4[3] == 0)" ( (binary_expression "piVar4[3] == 0" (subscript_expression "piVar4[3]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n        if (ppuVar2 == local_90 + -0xc8a2c) {\n          iVar8 = piVar4[0xb];\n          local_4c = local_a8;\n          iVar5 = -1;\n          if (iVar8 != 0) {\n            *(int *)((int)piVar10 + -0x10) = iVar8;\n            *(undefined4 *)((int)piVar10 + -0x14) = 0x1910c6;\n            local_b0 = iVar8;\n            sVar6 = strlen(*(char **)((int)piVar10 + -0x10));\n            iVar5 = sVar6 + local_b0;\n            iVar8 = local_b0;\n          }\n          *(undefined4 *)((int)piVar10 + -4) = 0;\n          *(int *)((int)piVar10 + -8) = iVar5;\n          *(int *)((int)piVar10 + -0xc) = iVar8;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1910e0;\n          FUN_00050e40();\n        }\n        else {\n          *(int **)((int)piVar10 + -0xc) = piVar4;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1914bc;\n          (*(code *)ppuVar2)();\n          piVar10 = (int *)((int)piVar10 + -4);\n        }\n        piVar7 = (int *)piVar4[2];\n        if (local_4c == local_a8) {\n          if (local_48 != 0) {\n            if (local_48 == 1) {\n              *(undefined1 *)piVar7 = (undefined1)local_44[0];\n              piVar7 = (int *)piVar4[2];\n            }\n            else {\n              *(int *)((int)piVar10 + -8) = local_48;\n              *(int **)((int)piVar10 + -0xc) = local_a8;\n              *(int **)((int)piVar10 + -0x10) = piVar7;\n              *(undefined4 *)((int)piVar10 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8));\n              piVar7 = (int *)piVar4[2];\n            }\n          }\n          piVar4[3] = local_48;\n          *(undefined1 *)((int)piVar7 + local_48) = 0;\n          iVar8 = local_44[0];\n        }\n        else {\n          if (piVar7 == piVar4 + 4) {\n            piVar4[2] = (int)local_4c;\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n          }\n          else {\n            piVar4[2] = (int)local_4c;\n            iVar8 = piVar4[4];\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n            local_4c = piVar7;\n            if (piVar7 != (int *)0x0) goto LAB_00191120;\n          }\n          local_4c = local_a8;\n          iVar8 = local_44[0];\n        }\nLAB_00191120:\n        local_44[0] = iVar8;\n        local_48 = 0;\n        *(undefined1 *)local_4c = 0;\n        if (local_4c != local_a8) {\n          *(int **)((int)piVar10 + -0x10) = local_4c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x191144;\n          FUN_001e6db0();\n        }\n      }" { (expression_statement "ppuVar2 = *(undefined ***)(*piVar4 + 0x14);" (assignment_expression "ppuVar2 = *(undefined ***)(*piVar4 + 0x14)" identifier = (pointer_expression "*(undefined ***)(*piVar4 + 0x14)" * (cast_expression "(undefined ***)(*piVar4 + 0x14)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(*piVar4 + 0x14)" ( (binary_expression "*piVar4 + 0x14" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) ;) (if_statement "if (ppuVar2 == local_90 + -0xc8a2c) {\n          iVar8 = piVar4[0xb];\n          local_4c = local_a8;\n          iVar5 = -1;\n          if (iVar8 != 0) {\n            *(int *)((int)piVar10 + -0x10) = iVar8;\n            *(undefined4 *)((int)piVar10 + -0x14) = 0x1910c6;\n            local_b0 = iVar8;\n            sVar6 = strlen(*(char **)((int)piVar10 + -0x10));\n            iVar5 = sVar6 + local_b0;\n            iVar8 = local_b0;\n          }\n          *(undefined4 *)((int)piVar10 + -4) = 0;\n          *(int *)((int)piVar10 + -8) = iVar5;\n          *(int *)((int)piVar10 + -0xc) = iVar8;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1910e0;\n          FUN_00050e40();\n        }\n        else {\n          *(int **)((int)piVar10 + -0xc) = piVar4;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1914bc;\n          (*(code *)ppuVar2)();\n          piVar10 = (int *)((int)piVar10 + -4);\n        }" if (parenthesized_expression "(ppuVar2 == local_90 + -0xc8a2c)" ( (binary_expression "ppuVar2 == local_90 + -0xc8a2c" identifier == (binary_expression "local_90 + -0xc8a2c" identifier + number_literal)) )) (compound_statement "{\n          iVar8 = piVar4[0xb];\n          local_4c = local_a8;\n          iVar5 = -1;\n          if (iVar8 != 0) {\n            *(int *)((int)piVar10 + -0x10) = iVar8;\n            *(undefined4 *)((int)piVar10 + -0x14) = 0x1910c6;\n            local_b0 = iVar8;\n            sVar6 = strlen(*(char **)((int)piVar10 + -0x10));\n            iVar5 = sVar6 + local_b0;\n            iVar8 = local_b0;\n          }\n          *(undefined4 *)((int)piVar10 + -4) = 0;\n          *(int *)((int)piVar10 + -8) = iVar5;\n          *(int *)((int)piVar10 + -0xc) = iVar8;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1910e0;\n          FUN_00050e40();\n        }" { (expression_statement "iVar8 = piVar4[0xb];" (assignment_expression "iVar8 = piVar4[0xb]" identifier = (subscript_expression "piVar4[0xb]" identifier [ number_literal ])) ;) (expression_statement "local_4c = local_a8;" (assignment_expression "local_4c = local_a8" identifier = identifier) ;) (expression_statement "iVar5 = -1;" (assignment_expression "iVar5 = -1" identifier = number_literal) ;) (if_statement "if (iVar8 != 0) {\n            *(int *)((int)piVar10 + -0x10) = iVar8;\n            *(undefined4 *)((int)piVar10 + -0x14) = 0x1910c6;\n            local_b0 = iVar8;\n            sVar6 = strlen(*(char **)((int)piVar10 + -0x10));\n            iVar5 = sVar6 + local_b0;\n            iVar8 = local_b0;\n          }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n            *(int *)((int)piVar10 + -0x10) = iVar8;\n            *(undefined4 *)((int)piVar10 + -0x14) = 0x1910c6;\n            local_b0 = iVar8;\n            sVar6 = strlen(*(char **)((int)piVar10 + -0x10));\n            iVar5 = sVar6 + local_b0;\n            iVar8 = local_b0;\n          }" { (expression_statement "*(int *)((int)piVar10 + -0x10) = iVar8;" (assignment_expression "*(int *)((int)piVar10 + -0x10) = iVar8" (pointer_expression "*(int *)((int)piVar10 + -0x10)" * (cast_expression "(int *)((int)piVar10 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0x10)" ( (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x1910c6;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x1910c6" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0x14)" ( (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_b0 = iVar8;" (assignment_expression "local_b0 = iVar8" identifier = identifier) ;) (expression_statement "sVar6 = strlen(*(char **)((int)piVar10 + -0x10));" (assignment_expression "sVar6 = strlen(*(char **)((int)piVar10 + -0x10))" identifier = (call_expression "strlen(*(char **)((int)piVar10 + -0x10))" identifier (argument_list "(*(char **)((int)piVar10 + -0x10))" ( (pointer_expression "*(char **)((int)piVar10 + -0x10)" * (cast_expression "(char **)((int)piVar10 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar10 + -0x10)" ( (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (expression_statement "iVar5 = sVar6 + local_b0;" (assignment_expression "iVar5 = sVar6 + local_b0" identifier = (binary_expression "sVar6 + local_b0" identifier + identifier)) ;) (expression_statement "iVar8 = local_b0;" (assignment_expression "iVar8 = local_b0" identifier = identifier) ;) })) (expression_statement "*(undefined4 *)((int)piVar10 + -4) = 0;" (assignment_expression "*(undefined4 *)((int)piVar10 + -4) = 0" (pointer_expression "*(undefined4 *)((int)piVar10 + -4)" * (cast_expression "(undefined4 *)((int)piVar10 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -4)" ( (binary_expression "(int)piVar10 + -4" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)piVar10 + -8) = iVar5;" (assignment_expression "*(int *)((int)piVar10 + -8) = iVar5" (pointer_expression "*(int *)((int)piVar10 + -8)" * (cast_expression "(int *)((int)piVar10 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -8)" ( (binary_expression "(int)piVar10 + -8" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)piVar10 + -0xc) = iVar8;" (assignment_expression "*(int *)((int)piVar10 + -0xc) = iVar8" (pointer_expression "*(int *)((int)piVar10 + -0xc)" * (cast_expression "(int *)((int)piVar10 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0xc)" ( (binary_expression "(int)piVar10 + -0xc" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int ***)((int)piVar10 + -0x10) = local_9c;" (assignment_expression "*(int ***)((int)piVar10 + -0x10) = local_9c" (pointer_expression "*(int ***)((int)piVar10 + -0x10)" * (cast_expression "(int ***)((int)piVar10 + -0x10)" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar10 + -0x10)" ( (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x1910e0;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x1910e0" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0x14)" ( (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00050e40();" (call_expression "FUN_00050e40()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n          *(int **)((int)piVar10 + -0xc) = piVar4;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1914bc;\n          (*(code *)ppuVar2)();\n          piVar10 = (int *)((int)piVar10 + -4);\n        }" else (compound_statement "{\n          *(int **)((int)piVar10 + -0xc) = piVar4;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1914bc;\n          (*(code *)ppuVar2)();\n          piVar10 = (int *)((int)piVar10 + -4);\n        }" { (expression_statement "*(int **)((int)piVar10 + -0xc) = piVar4;" (assignment_expression "*(int **)((int)piVar10 + -0xc) = piVar4" (pointer_expression "*(int **)((int)piVar10 + -0xc)" * (cast_expression "(int **)((int)piVar10 + -0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar10 + -0xc)" ( (binary_expression "(int)piVar10 + -0xc" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int ***)((int)piVar10 + -0x10) = local_9c;" (assignment_expression "*(int ***)((int)piVar10 + -0x10) = local_9c" (pointer_expression "*(int ***)((int)piVar10 + -0x10)" * (cast_expression "(int ***)((int)piVar10 + -0x10)" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar10 + -0x10)" ( (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x1914bc;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x1914bc" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0x14)" ( (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*(code *)ppuVar2)();" (call_expression "(*(code *)ppuVar2)()" (parenthesized_expression "(*(code *)ppuVar2)" ( (pointer_expression "*(code *)ppuVar2" * (cast_expression "(code *)ppuVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar10 = (int *)((int)piVar10 + -4);" (assignment_expression "piVar10 = (int *)((int)piVar10 + -4)" identifier = (cast_expression "(int *)((int)piVar10 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -4)" ( (binary_expression "(int)piVar10 + -4" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }))) (expression_statement "piVar7 = (int *)piVar4[2];" (assignment_expression "piVar7 = (int *)piVar4[2]" identifier = (cast_expression "(int *)piVar4[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar4[2]" identifier [ number_literal ]))) ;) (if_statement "if (local_4c == local_a8) {\n          if (local_48 != 0) {\n            if (local_48 == 1) {\n              *(undefined1 *)piVar7 = (undefined1)local_44[0];\n              piVar7 = (int *)piVar4[2];\n            }\n            else {\n              *(int *)((int)piVar10 + -8) = local_48;\n              *(int **)((int)piVar10 + -0xc) = local_a8;\n              *(int **)((int)piVar10 + -0x10) = piVar7;\n              *(undefined4 *)((int)piVar10 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8));\n              piVar7 = (int *)piVar4[2];\n            }\n          }\n          piVar4[3] = local_48;\n          *(undefined1 *)((int)piVar7 + local_48) = 0;\n          iVar8 = local_44[0];\n        }\n        else {\n          if (piVar7 == piVar4 + 4) {\n            piVar4[2] = (int)local_4c;\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n          }\n          else {\n            piVar4[2] = (int)local_4c;\n            iVar8 = piVar4[4];\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n            local_4c = piVar7;\n            if (piVar7 != (int *)0x0) goto LAB_00191120;\n          }\n          local_4c = local_a8;\n          iVar8 = local_44[0];\n        }" if (parenthesized_expression "(local_4c == local_a8)" ( (binary_expression "local_4c == local_a8" identifier == identifier) )) (compound_statement "{\n          if (local_48 != 0) {\n            if (local_48 == 1) {\n              *(undefined1 *)piVar7 = (undefined1)local_44[0];\n              piVar7 = (int *)piVar4[2];\n            }\n            else {\n              *(int *)((int)piVar10 + -8) = local_48;\n              *(int **)((int)piVar10 + -0xc) = local_a8;\n              *(int **)((int)piVar10 + -0x10) = piVar7;\n              *(undefined4 *)((int)piVar10 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8));\n              piVar7 = (int *)piVar4[2];\n            }\n          }\n          piVar4[3] = local_48;\n          *(undefined1 *)((int)piVar7 + local_48) = 0;\n          iVar8 = local_44[0];\n        }" { (if_statement "if (local_48 != 0) {\n            if (local_48 == 1) {\n              *(undefined1 *)piVar7 = (undefined1)local_44[0];\n              piVar7 = (int *)piVar4[2];\n            }\n            else {\n              *(int *)((int)piVar10 + -8) = local_48;\n              *(int **)((int)piVar10 + -0xc) = local_a8;\n              *(int **)((int)piVar10 + -0x10) = piVar7;\n              *(undefined4 *)((int)piVar10 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8));\n              piVar7 = (int *)piVar4[2];\n            }\n          }" if (parenthesized_expression "(local_48 != 0)" ( (binary_expression "local_48 != 0" identifier != number_literal) )) (compound_statement "{\n            if (local_48 == 1) {\n              *(undefined1 *)piVar7 = (undefined1)local_44[0];\n              piVar7 = (int *)piVar4[2];\n            }\n            else {\n              *(int *)((int)piVar10 + -8) = local_48;\n              *(int **)((int)piVar10 + -0xc) = local_a8;\n              *(int **)((int)piVar10 + -0x10) = piVar7;\n              *(undefined4 *)((int)piVar10 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8));\n              piVar7 = (int *)piVar4[2];\n            }\n          }" { (if_statement "if (local_48 == 1) {\n              *(undefined1 *)piVar7 = (undefined1)local_44[0];\n              piVar7 = (int *)piVar4[2];\n            }\n            else {\n              *(int *)((int)piVar10 + -8) = local_48;\n              *(int **)((int)piVar10 + -0xc) = local_a8;\n              *(int **)((int)piVar10 + -0x10) = piVar7;\n              *(undefined4 *)((int)piVar10 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8));\n              piVar7 = (int *)piVar4[2];\n            }" if (parenthesized_expression "(local_48 == 1)" ( (binary_expression "local_48 == 1" identifier == number_literal) )) (compound_statement "{\n              *(undefined1 *)piVar7 = (undefined1)local_44[0];\n              piVar7 = (int *)piVar4[2];\n            }" { (expression_statement "*(undefined1 *)piVar7 = (undefined1)local_44[0];" (assignment_expression "*(undefined1 *)piVar7 = (undefined1)local_44[0]" (pointer_expression "*(undefined1 *)piVar7" * (cast_expression "(undefined1 *)piVar7" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(undefined1)local_44[0]" ( (type_descriptor "undefined1" type_identifier) ) (subscript_expression "local_44[0]" identifier [ number_literal ]))) ;) (expression_statement "piVar7 = (int *)piVar4[2];" (assignment_expression "piVar7 = (int *)piVar4[2]" identifier = (cast_expression "(int *)piVar4[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar4[2]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n              *(int *)((int)piVar10 + -8) = local_48;\n              *(int **)((int)piVar10 + -0xc) = local_a8;\n              *(int **)((int)piVar10 + -0x10) = piVar7;\n              *(undefined4 *)((int)piVar10 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8));\n              piVar7 = (int *)piVar4[2];\n            }" else (compound_statement "{\n              *(int *)((int)piVar10 + -8) = local_48;\n              *(int **)((int)piVar10 + -0xc) = local_a8;\n              *(int **)((int)piVar10 + -0x10) = piVar7;\n              *(undefined4 *)((int)piVar10 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8));\n              piVar7 = (int *)piVar4[2];\n            }" { (expression_statement "*(int *)((int)piVar10 + -8) = local_48;" (assignment_expression "*(int *)((int)piVar10 + -8) = local_48" (pointer_expression "*(int *)((int)piVar10 + -8)" * (cast_expression "(int *)((int)piVar10 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -8)" ( (binary_expression "(int)piVar10 + -8" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)piVar10 + -0xc) = local_a8;" (assignment_expression "*(int **)((int)piVar10 + -0xc) = local_a8" (pointer_expression "*(int **)((int)piVar10 + -0xc)" * (cast_expression "(int **)((int)piVar10 + -0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar10 + -0xc)" ( (binary_expression "(int)piVar10 + -0xc" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)piVar10 + -0x10) = piVar7;" (assignment_expression "*(int **)((int)piVar10 + -0x10) = piVar7" (pointer_expression "*(int **)((int)piVar10 + -0x10)" * (cast_expression "(int **)((int)piVar10 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar10 + -0x10)" ( (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x19146f;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x19146f" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0x14)" ( (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8));" (call_expression "memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8))" identifier (argument_list "(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8))" ( (pointer_expression "*(void **)((int)piVar10 + -0x10)" * (cast_expression "(void **)((int)piVar10 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar10 + -0x10)" ( (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(void **)((int)piVar10 + -0xc)" * (cast_expression "(void **)((int)piVar10 + -0xc)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar10 + -0xc)" ( (binary_expression "(int)piVar10 + -0xc" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)piVar10 + -8)" * (cast_expression "(size_t *)((int)piVar10 + -8)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -8)" ( (binary_expression "(int)piVar10 + -8" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "piVar7 = (int *)piVar4[2];" (assignment_expression "piVar7 = (int *)piVar4[2]" identifier = (cast_expression "(int *)piVar4[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar4[2]" identifier [ number_literal ]))) ;) }))) })) (expression_statement "piVar4[3] = local_48;" (assignment_expression "piVar4[3] = local_48" (subscript_expression "piVar4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)piVar7 + local_48) = 0;" (assignment_expression "*(undefined1 *)((int)piVar7 + local_48) = 0" (pointer_expression "*(undefined1 *)((int)piVar7 + local_48)" * (cast_expression "(undefined1 *)((int)piVar7 + local_48)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar7 + local_48)" ( (binary_expression "(int)piVar7 + local_48" (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "iVar8 = local_44[0];" (assignment_expression "iVar8 = local_44[0]" identifier = (subscript_expression "local_44[0]" identifier [ number_literal ])) ;) }) (else_clause "else {\n          if (piVar7 == piVar4 + 4) {\n            piVar4[2] = (int)local_4c;\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n          }\n          else {\n            piVar4[2] = (int)local_4c;\n            iVar8 = piVar4[4];\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n            local_4c = piVar7;\n            if (piVar7 != (int *)0x0) goto LAB_00191120;\n          }\n          local_4c = local_a8;\n          iVar8 = local_44[0];\n        }" else (compound_statement "{\n          if (piVar7 == piVar4 + 4) {\n            piVar4[2] = (int)local_4c;\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n          }\n          else {\n            piVar4[2] = (int)local_4c;\n            iVar8 = piVar4[4];\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n            local_4c = piVar7;\n            if (piVar7 != (int *)0x0) goto LAB_00191120;\n          }\n          local_4c = local_a8;\n          iVar8 = local_44[0];\n        }" { (if_statement "if (piVar7 == piVar4 + 4) {\n            piVar4[2] = (int)local_4c;\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n          }\n          else {\n            piVar4[2] = (int)local_4c;\n            iVar8 = piVar4[4];\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n            local_4c = piVar7;\n            if (piVar7 != (int *)0x0) goto LAB_00191120;\n          }" if (parenthesized_expression "(piVar7 == piVar4 + 4)" ( (binary_expression "piVar7 == piVar4 + 4" identifier == (binary_expression "piVar4 + 4" identifier + number_literal)) )) (compound_statement "{\n            piVar4[2] = (int)local_4c;\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n          }" { (expression_statement "piVar4[2] = (int)local_4c;" (assignment_expression "piVar4[2] = (int)local_4c" (subscript_expression "piVar4[2]" identifier [ number_literal ]) = (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar4[3] = local_48;" (assignment_expression "piVar4[3] = local_48" (subscript_expression "piVar4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar4[4] = local_44[0];" (assignment_expression "piVar4[4] = local_44[0]" (subscript_expression "piVar4[4]" identifier [ number_literal ]) = (subscript_expression "local_44[0]" identifier [ number_literal ])) ;) }) (else_clause "else {\n            piVar4[2] = (int)local_4c;\n            iVar8 = piVar4[4];\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n            local_4c = piVar7;\n            if (piVar7 != (int *)0x0) goto LAB_00191120;\n          }" else (compound_statement "{\n            piVar4[2] = (int)local_4c;\n            iVar8 = piVar4[4];\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n            local_4c = piVar7;\n            if (piVar7 != (int *)0x0) goto LAB_00191120;\n          }" { (expression_statement "piVar4[2] = (int)local_4c;" (assignment_expression "piVar4[2] = (int)local_4c" (subscript_expression "piVar4[2]" identifier [ number_literal ]) = (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "iVar8 = piVar4[4];" (assignment_expression "iVar8 = piVar4[4]" identifier = (subscript_expression "piVar4[4]" identifier [ number_literal ])) ;) (expression_statement "piVar4[3] = local_48;" (assignment_expression "piVar4[3] = local_48" (subscript_expression "piVar4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar4[4] = local_44[0];" (assignment_expression "piVar4[4] = local_44[0]" (subscript_expression "piVar4[4]" identifier [ number_literal ]) = (subscript_expression "local_44[0]" identifier [ number_literal ])) ;) (expression_statement "local_4c = piVar7;" (assignment_expression "local_4c = piVar7" identifier = identifier) ;) (if_statement "if (piVar7 != (int *)0x0) goto LAB_00191120;" if (parenthesized_expression "(piVar7 != (int *)0x0)" ( (binary_expression "piVar7 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00191120;" goto statement_identifier ;)) }))) (expression_statement "local_4c = local_a8;" (assignment_expression "local_4c = local_a8" identifier = identifier) ;) (expression_statement "iVar8 = local_44[0];" (assignment_expression "iVar8 = local_44[0]" identifier = (subscript_expression "local_44[0]" identifier [ number_literal ])) ;) }))) (labeled_statement "LAB_00191120:\n        local_44[0] = iVar8;" statement_identifier : (expression_statement "local_44[0] = iVar8;" (assignment_expression "local_44[0] = iVar8" (subscript_expression "local_44[0]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "*(undefined1 *)local_4c = 0;" (assignment_expression "*(undefined1 *)local_4c = 0" (pointer_expression "*(undefined1 *)local_4c" * (cast_expression "(undefined1 *)local_4c" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (if_statement "if (local_4c != local_a8) {\n          *(int **)((int)piVar10 + -0x10) = local_4c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x191144;\n          FUN_001e6db0();\n        }" if (parenthesized_expression "(local_4c != local_a8)" ( (binary_expression "local_4c != local_a8" identifier != identifier) )) (compound_statement "{\n          *(int **)((int)piVar10 + -0x10) = local_4c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x191144;\n          FUN_001e6db0();\n        }" { (expression_statement "*(int **)((int)piVar10 + -0x10) = local_4c;" (assignment_expression "*(int **)((int)piVar10 + -0x10) = local_4c" (pointer_expression "*(int **)((int)piVar10 + -0x10)" * (cast_expression "(int **)((int)piVar10 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar10 + -0x10)" ( (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x191144;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x191144" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0x14)" ( (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" identifier (argument_list "()" ( ))) ;) })) })) (expression_statement "*(int *)((int)piVar10 + -4) = piVar4[2];" (assignment_expression "*(int *)((int)piVar10 + -4) = piVar4[2]" (pointer_expression "*(int *)((int)piVar10 + -4)" * (cast_expression "(int *)((int)piVar10 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -4)" ( (binary_expression "(int)piVar10 + -4" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (subscript_expression "piVar4[2]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((int)piVar10 + -8) = param_2;" (assignment_expression "*(undefined4 *)((int)piVar10 + -8) = param_2" (pointer_expression "*(undefined4 *)((int)piVar10 + -8)" * (cast_expression "(undefined4 *)((int)piVar10 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -8)" ( (binary_expression "(int)piVar10 + -8" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)piVar10 + -0xc) = (int)local_90 + -0xf4943;" (assignment_expression "*(int *)((int)piVar10 + -0xc) = (int)local_90 + -0xf4943" (pointer_expression "*(int *)((int)piVar10 + -0xc)" * (cast_expression "(int *)((int)piVar10 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0xc)" ( (binary_expression "(int)piVar10 + -0xc" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_90 + -0xf4943" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(int **)((int)piVar10 + -0x10) = local_98;" (assignment_expression "*(int **)((int)piVar10 + -0x10) = local_98" (pointer_expression "*(int **)((int)piVar10 + -0x10)" * (cast_expression "(int **)((int)piVar10 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar10 + -0x10)" ( (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x191165;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x191165" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0x14)" ( (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000653f0();" (call_expression "FUN_000653f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar9 = (undefined1 *)piVar10;" (assignment_expression "puVar9 = (undefined1 *)piVar10" identifier = (cast_expression "(undefined1 *)piVar10" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "*(int ***)(puVar9 + -0x10) = local_9c;" (assignment_expression "*(int ***)(puVar9 + -0x10) = local_9c" (pointer_expression "*(int ***)(puVar9 + -0x10)" * (cast_expression "(int ***)(puVar9 + -0x10)" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar9 + -0x10)" ( (binary_expression "puVar9 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar9 + -0x14) = 0x19117c;" (assignment_expression "*(undefined4 *)(puVar9 + -0x14) = 0x19117c" (pointer_expression "*(undefined4 *)(puVar9 + -0x14)" * (cast_expression "(undefined4 *)(puVar9 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x14)" ( (binary_expression "puVar9 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0018fff0();" (call_expression "FUN_0018fff0()" identifier (argument_list "()" ( ))) ;) (if_statement "if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {\n      *(int ***)(puVar9 + -0x10) = local_9c;\n      *(undefined4 *)(puVar9 + -0x14) = 0x1911a8;\n      thunk_FUN_00190010();\n    }" if (parenthesized_expression "((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0))" ( (binary_expression "(*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)" (parenthesized_expression "(*(int *)(*local_94 + 8) != 0)" ( (binary_expression "*(int *)(*local_94 + 8) != 0" (pointer_expression "*(int *)(*local_94 + 8)" * (cast_expression "(int *)(*local_94 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_94 + 8)" ( (binary_expression "*local_94 + 8" (pointer_expression "*local_94" * identifier) + number_literal) )))) != number_literal) )) && (parenthesized_expression "(((*local_94)[0x14] & 1) != 0)" ( (binary_expression "((*local_94)[0x14] & 1) != 0" (parenthesized_expression "((*local_94)[0x14] & 1)" ( (binary_expression "(*local_94)[0x14] & 1" (subscript_expression "(*local_94)[0x14]" (parenthesized_expression "(*local_94)" ( (pointer_expression "*local_94" * identifier) )) [ number_literal ]) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n      *(int ***)(puVar9 + -0x10) = local_9c;\n      *(undefined4 *)(puVar9 + -0x14) = 0x1911a8;\n      thunk_FUN_00190010();\n    }" { (expression_statement "*(int ***)(puVar9 + -0x10) = local_9c;" (assignment_expression "*(int ***)(puVar9 + -0x10) = local_9c" (pointer_expression "*(int ***)(puVar9 + -0x10)" * (cast_expression "(int ***)(puVar9 + -0x10)" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar9 + -0x10)" ( (binary_expression "puVar9 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar9 + -0x14) = 0x1911a8;" (assignment_expression "*(undefined4 *)(puVar9 + -0x14) = 0x1911a8" (pointer_expression "*(undefined4 *)(puVar9 + -0x14)" * (cast_expression "(undefined4 *)(puVar9 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x14)" ( (binary_expression "puVar9 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "thunk_FUN_00190010();" (call_expression "thunk_FUN_00190010()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "ppuVar2 = *(undefined ***)(*piVar4 + 0x10);" (assignment_expression "ppuVar2 = *(undefined ***)(*piVar4 + 0x10)" identifier = (pointer_expression "*(undefined ***)(*piVar4 + 0x10)" * (cast_expression "(undefined ***)(*piVar4 + 0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(*piVar4 + 0x10)" ( (binary_expression "*piVar4 + 0x10" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) ;) (if_statement "if (ppuVar2 == local_a4) {\n      piVar10 = (int *)piVar4[9];\n      iVar8 = *piVar10;\n      *(int **)(puVar9 + -8) = piVar4;\n      *(undefined4 **)(puVar9 + -0xc) = param_1;\n      *(int **)(puVar9 + -0x10) = piVar10;\n      pcVar3 = *(code **)(iVar8 + 8);\n      *(undefined4 *)(puVar9 + -0x14) = 0x1911ca;\n      (*pcVar3)();\n    }\n    else {\n      *(undefined4 **)(puVar9 + -0xc) = param_1;\n      *(int **)(puVar9 + -0x10) = piVar4;\n      *(undefined4 *)(puVar9 + -0x14) = 0x1913ff;\n      (*(code *)ppuVar2)();\n    }" if (parenthesized_expression "(ppuVar2 == local_a4)" ( (binary_expression "ppuVar2 == local_a4" identifier == identifier) )) (compound_statement "{\n      piVar10 = (int *)piVar4[9];\n      iVar8 = *piVar10;\n      *(int **)(puVar9 + -8) = piVar4;\n      *(undefined4 **)(puVar9 + -0xc) = param_1;\n      *(int **)(puVar9 + -0x10) = piVar10;\n      pcVar3 = *(code **)(iVar8 + 8);\n      *(undefined4 *)(puVar9 + -0x14) = 0x1911ca;\n      (*pcVar3)();\n    }" { (expression_statement "piVar10 = (int *)piVar4[9];" (assignment_expression "piVar10 = (int *)piVar4[9]" identifier = (cast_expression "(int *)piVar4[9]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar4[9]" identifier [ number_literal ]))) ;) (expression_statement "iVar8 = *piVar10;" (assignment_expression "iVar8 = *piVar10" identifier = (pointer_expression "*piVar10" * identifier)) ;) (expression_statement "*(int **)(puVar9 + -8) = piVar4;" (assignment_expression "*(int **)(puVar9 + -8) = piVar4" (pointer_expression "*(int **)(puVar9 + -8)" * (cast_expression "(int **)(puVar9 + -8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -8)" ( (binary_expression "puVar9 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar9 + -0xc) = param_1;" (assignment_expression "*(undefined4 **)(puVar9 + -0xc) = param_1" (pointer_expression "*(undefined4 **)(puVar9 + -0xc)" * (cast_expression "(undefined4 **)(puVar9 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0xc)" ( (binary_expression "puVar9 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar9 + -0x10) = piVar10;" (assignment_expression "*(int **)(puVar9 + -0x10) = piVar10" (pointer_expression "*(int **)(puVar9 + -0x10)" * (cast_expression "(int **)(puVar9 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x10)" ( (binary_expression "puVar9 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar3 = *(code **)(iVar8 + 8);" (assignment_expression "pcVar3 = *(code **)(iVar8 + 8)" identifier = (pointer_expression "*(code **)(iVar8 + 8)" * (cast_expression "(code **)(iVar8 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar9 + -0x14) = 0x1911ca;" (assignment_expression "*(undefined4 *)(puVar9 + -0x14) = 0x1911ca" (pointer_expression "*(undefined4 *)(puVar9 + -0x14)" * (cast_expression "(undefined4 *)(puVar9 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x14)" ( (binary_expression "puVar9 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar3)();" (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( ))) ;) }) (else_clause "else {\n      *(undefined4 **)(puVar9 + -0xc) = param_1;\n      *(int **)(puVar9 + -0x10) = piVar4;\n      *(undefined4 *)(puVar9 + -0x14) = 0x1913ff;\n      (*(code *)ppuVar2)();\n    }" else (compound_statement "{\n      *(undefined4 **)(puVar9 + -0xc) = param_1;\n      *(int **)(puVar9 + -0x10) = piVar4;\n      *(undefined4 *)(puVar9 + -0x14) = 0x1913ff;\n      (*(code *)ppuVar2)();\n    }" { (expression_statement "*(undefined4 **)(puVar9 + -0xc) = param_1;" (assignment_expression "*(undefined4 **)(puVar9 + -0xc) = param_1" (pointer_expression "*(undefined4 **)(puVar9 + -0xc)" * (cast_expression "(undefined4 **)(puVar9 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0xc)" ( (binary_expression "puVar9 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar9 + -0x10) = piVar4;" (assignment_expression "*(int **)(puVar9 + -0x10) = piVar4" (pointer_expression "*(int **)(puVar9 + -0x10)" * (cast_expression "(int **)(puVar9 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x10)" ( (binary_expression "puVar9 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar9 + -0x14) = 0x1913ff;" (assignment_expression "*(undefined4 *)(puVar9 + -0x14) = 0x1913ff" (pointer_expression "*(undefined4 *)(puVar9 + -0x14)" * (cast_expression "(undefined4 *)(puVar9 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x14)" ( (binary_expression "puVar9 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*(code *)ppuVar2)();" (call_expression "(*(code *)ppuVar2)()" (parenthesized_expression "(*(code *)ppuVar2)" ( (pointer_expression "*(code *)ppuVar2" * (cast_expression "(code *)ppuVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) }))) (expression_statement "piVar10 = (int *)puVar9;" (assignment_expression "piVar10 = (int *)puVar9" identifier = (cast_expression "(int *)puVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {\n      *(int ***)(puVar9 + -0xc) = local_9c;\n      *(int **)(puVar9 + -0x10) = &local_84;\n      *(undefined4 *)(puVar9 + -0x14) = 0x191202;\n      FUN_001900d0();\n      puVar11 = puVar9 + -4;\n      puVar1 = (undefined4 *)*local_94;\n      piVar10 = (int *)(puVar9 + -4);\n      if ((puVar1[2] != 0) && (piVar10 = (int *)(puVar9 + -4), (*(byte *)(puVar1 + 5) & 1) != 0)) {\n        local_b8 = *puVar1;\n        local_bc = local_7c / 1000;\n        local_98 = (int *)((local_7c % 1000) * 1000);\n        local_c0 = local_80 / 1000;\n        local_b0 = (local_80 % 1000) * 1000;\n        local_c4 = local_84 / 1000;\n        local_b4 = (local_84 % 1000) * 1000;\n        if (piVar4[3] == 0) {\n          ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n          if (ppuVar2 == local_90 + -0xc8a2c) {\n            iVar8 = piVar4[0xb];\n            local_c8 = local_5c;\n            iVar5 = -1;\n            local_64 = local_c8;\n            if (iVar8 != 0) {\n              *(int *)(puVar9 + -0x14) = iVar8;\n              *(undefined4 *)(puVar9 + -0x18) = 0x1912ff;\n              local_cc = iVar8;\n              sVar6 = strlen(*(char **)(puVar9 + -0x14));\n              iVar5 = sVar6 + local_cc;\n              iVar8 = local_cc;\n            }\n            puVar11 = puVar9 + -4;\n            *(undefined4 *)(puVar9 + -8) = 0;\n            *(int *)(puVar9 + -0xc) = iVar5;\n            *(int *)(puVar9 + -0x10) = iVar8;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191317;\n            FUN_00050e40();\n          }\n          else {\n            *(int **)(puVar9 + -0x10) = piVar4;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191579;\n            (*(code *)ppuVar2)();\n            local_c8 = local_5c;\n            puVar11 = puVar9 + -8;\n          }\n          piVar10 = (int *)piVar4[2];\n          if (local_64 == local_c8) {\n            if (local_60 != 0) {\n              if (local_60 == 1) {\n                *(undefined1 *)piVar10 = (undefined1)local_5c[0];\n                piVar10 = (int *)piVar4[2];\n              }\n              else {\n                *(int *)(puVar11 + -8) = local_60;\n                *(int **)(puVar11 + -0xc) = local_c8;\n                *(int **)(puVar11 + -0x10) = piVar10;\n                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;\n                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));\n                piVar10 = (int *)piVar4[2];\n              }\n            }\n            piVar4[3] = local_60;\n            *(undefined1 *)((int)piVar10 + local_60) = 0;\n            piVar10 = local_64;\n            iVar8 = local_5c[0];\n          }\n          else {\n            if (piVar10 == piVar4 + 4) {\n              piVar4[2] = (int)local_64;\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n            }\n            else {\n              piVar4[2] = (int)local_64;\n              iVar8 = piVar4[4];\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n              local_64 = piVar10;\n              if (piVar10 != (int *)0x0) goto LAB_00191357;\n            }\n            local_64 = local_c8;\n            local_c8 = local_5c;\n            piVar10 = local_c8;\n            iVar8 = local_5c[0];\n          }\nLAB_00191357:\n          local_5c[0] = iVar8;\n          local_60 = 0;\n          *(undefined1 *)piVar10 = 0;\n          if (local_64 != local_c8) {\n            *(int **)(puVar11 + -0x10) = local_64;\n            *(undefined4 *)(puVar11 + -0x14) = 0x19137b;\n            FUN_001e6db0();\n          }\n        }\n        *(int **)(puVar11 + -0xc) = local_98;\n        *(int *)(puVar11 + -0x10) = local_bc;\n        *(int *)(puVar11 + -0x14) = local_b0;\n        *(int *)(puVar11 + -0x18) = local_c0;\n        *(int *)(puVar11 + -0x1c) = local_b4;\n        *(int *)(puVar11 + -0x20) = local_c4;\n        *(int *)(puVar11 + -0x24) = piVar4[2];\n        *(undefined4 *)(puVar11 + -0x28) = param_2;\n        *(undefined ***)(puVar11 + -0x2c) = local_90 + -0x3d24b;\n        *(undefined4 *)(puVar11 + -0x30) = local_b8;\n        *(undefined4 *)(puVar11 + -0x34) = 0x1913c3;\n        FUN_000653f0();\n        piVar10 = (int *)puVar11;\n      }\n    }" if (parenthesized_expression "((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0))" ( (binary_expression "(*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)" (parenthesized_expression "(*(int *)(*local_94 + 8) != 0)" ( (binary_expression "*(int *)(*local_94 + 8) != 0" (pointer_expression "*(int *)(*local_94 + 8)" * (cast_expression "(int *)(*local_94 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_94 + 8)" ( (binary_expression "*local_94 + 8" (pointer_expression "*local_94" * identifier) + number_literal) )))) != number_literal) )) && (parenthesized_expression "(((*local_94)[0x14] & 1) != 0)" ( (binary_expression "((*local_94)[0x14] & 1) != 0" (parenthesized_expression "((*local_94)[0x14] & 1)" ( (binary_expression "(*local_94)[0x14] & 1" (subscript_expression "(*local_94)[0x14]" (parenthesized_expression "(*local_94)" ( (pointer_expression "*local_94" * identifier) )) [ number_literal ]) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n      *(int ***)(puVar9 + -0xc) = local_9c;\n      *(int **)(puVar9 + -0x10) = &local_84;\n      *(undefined4 *)(puVar9 + -0x14) = 0x191202;\n      FUN_001900d0();\n      puVar11 = puVar9 + -4;\n      puVar1 = (undefined4 *)*local_94;\n      piVar10 = (int *)(puVar9 + -4);\n      if ((puVar1[2] != 0) && (piVar10 = (int *)(puVar9 + -4), (*(byte *)(puVar1 + 5) & 1) != 0)) {\n        local_b8 = *puVar1;\n        local_bc = local_7c / 1000;\n        local_98 = (int *)((local_7c % 1000) * 1000);\n        local_c0 = local_80 / 1000;\n        local_b0 = (local_80 % 1000) * 1000;\n        local_c4 = local_84 / 1000;\n        local_b4 = (local_84 % 1000) * 1000;\n        if (piVar4[3] == 0) {\n          ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n          if (ppuVar2 == local_90 + -0xc8a2c) {\n            iVar8 = piVar4[0xb];\n            local_c8 = local_5c;\n            iVar5 = -1;\n            local_64 = local_c8;\n            if (iVar8 != 0) {\n              *(int *)(puVar9 + -0x14) = iVar8;\n              *(undefined4 *)(puVar9 + -0x18) = 0x1912ff;\n              local_cc = iVar8;\n              sVar6 = strlen(*(char **)(puVar9 + -0x14));\n              iVar5 = sVar6 + local_cc;\n              iVar8 = local_cc;\n            }\n            puVar11 = puVar9 + -4;\n            *(undefined4 *)(puVar9 + -8) = 0;\n            *(int *)(puVar9 + -0xc) = iVar5;\n            *(int *)(puVar9 + -0x10) = iVar8;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191317;\n            FUN_00050e40();\n          }\n          else {\n            *(int **)(puVar9 + -0x10) = piVar4;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191579;\n            (*(code *)ppuVar2)();\n            local_c8 = local_5c;\n            puVar11 = puVar9 + -8;\n          }\n          piVar10 = (int *)piVar4[2];\n          if (local_64 == local_c8) {\n            if (local_60 != 0) {\n              if (local_60 == 1) {\n                *(undefined1 *)piVar10 = (undefined1)local_5c[0];\n                piVar10 = (int *)piVar4[2];\n              }\n              else {\n                *(int *)(puVar11 + -8) = local_60;\n                *(int **)(puVar11 + -0xc) = local_c8;\n                *(int **)(puVar11 + -0x10) = piVar10;\n                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;\n                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));\n                piVar10 = (int *)piVar4[2];\n              }\n            }\n            piVar4[3] = local_60;\n            *(undefined1 *)((int)piVar10 + local_60) = 0;\n            piVar10 = local_64;\n            iVar8 = local_5c[0];\n          }\n          else {\n            if (piVar10 == piVar4 + 4) {\n              piVar4[2] = (int)local_64;\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n            }\n            else {\n              piVar4[2] = (int)local_64;\n              iVar8 = piVar4[4];\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n              local_64 = piVar10;\n              if (piVar10 != (int *)0x0) goto LAB_00191357;\n            }\n            local_64 = local_c8;\n            local_c8 = local_5c;\n            piVar10 = local_c8;\n            iVar8 = local_5c[0];\n          }\nLAB_00191357:\n          local_5c[0] = iVar8;\n          local_60 = 0;\n          *(undefined1 *)piVar10 = 0;\n          if (local_64 != local_c8) {\n            *(int **)(puVar11 + -0x10) = local_64;\n            *(undefined4 *)(puVar11 + -0x14) = 0x19137b;\n            FUN_001e6db0();\n          }\n        }\n        *(int **)(puVar11 + -0xc) = local_98;\n        *(int *)(puVar11 + -0x10) = local_bc;\n        *(int *)(puVar11 + -0x14) = local_b0;\n        *(int *)(puVar11 + -0x18) = local_c0;\n        *(int *)(puVar11 + -0x1c) = local_b4;\n        *(int *)(puVar11 + -0x20) = local_c4;\n        *(int *)(puVar11 + -0x24) = piVar4[2];\n        *(undefined4 *)(puVar11 + -0x28) = param_2;\n        *(undefined ***)(puVar11 + -0x2c) = local_90 + -0x3d24b;\n        *(undefined4 *)(puVar11 + -0x30) = local_b8;\n        *(undefined4 *)(puVar11 + -0x34) = 0x1913c3;\n        FUN_000653f0();\n        piVar10 = (int *)puVar11;\n      }\n    }" { (expression_statement "*(int ***)(puVar9 + -0xc) = local_9c;" (assignment_expression "*(int ***)(puVar9 + -0xc) = local_9c" (pointer_expression "*(int ***)(puVar9 + -0xc)" * (cast_expression "(int ***)(puVar9 + -0xc)" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar9 + -0xc)" ( (binary_expression "puVar9 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar9 + -0x10) = &local_84;" (assignment_expression "*(int **)(puVar9 + -0x10) = &local_84" (pointer_expression "*(int **)(puVar9 + -0x10)" * (cast_expression "(int **)(puVar9 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x10)" ( (binary_expression "puVar9 + -0x10" identifier + number_literal) )))) = (pointer_expression "&local_84" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar9 + -0x14) = 0x191202;" (assignment_expression "*(undefined4 *)(puVar9 + -0x14) = 0x191202" (pointer_expression "*(undefined4 *)(puVar9 + -0x14)" * (cast_expression "(undefined4 *)(puVar9 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x14)" ( (binary_expression "puVar9 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001900d0();" (call_expression "FUN_001900d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar11 = puVar9 + -4;" (assignment_expression "puVar11 = puVar9 + -4" identifier = (binary_expression "puVar9 + -4" identifier + number_literal)) ;) (expression_statement "puVar1 = (undefined4 *)*local_94;" (assignment_expression "puVar1 = (undefined4 *)*local_94" identifier = (cast_expression "(undefined4 *)*local_94" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_94" * identifier))) ;) (expression_statement "piVar10 = (int *)(puVar9 + -4);" (assignment_expression "piVar10 = (int *)(puVar9 + -4)" identifier = (cast_expression "(int *)(puVar9 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -4)" ( (binary_expression "puVar9 + -4" identifier + number_literal) )))) ;) (if_statement "if ((puVar1[2] != 0) && (piVar10 = (int *)(puVar9 + -4), (*(byte *)(puVar1 + 5) & 1) != 0)) {\n        local_b8 = *puVar1;\n        local_bc = local_7c / 1000;\n        local_98 = (int *)((local_7c % 1000) * 1000);\n        local_c0 = local_80 / 1000;\n        local_b0 = (local_80 % 1000) * 1000;\n        local_c4 = local_84 / 1000;\n        local_b4 = (local_84 % 1000) * 1000;\n        if (piVar4[3] == 0) {\n          ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n          if (ppuVar2 == local_90 + -0xc8a2c) {\n            iVar8 = piVar4[0xb];\n            local_c8 = local_5c;\n            iVar5 = -1;\n            local_64 = local_c8;\n            if (iVar8 != 0) {\n              *(int *)(puVar9 + -0x14) = iVar8;\n              *(undefined4 *)(puVar9 + -0x18) = 0x1912ff;\n              local_cc = iVar8;\n              sVar6 = strlen(*(char **)(puVar9 + -0x14));\n              iVar5 = sVar6 + local_cc;\n              iVar8 = local_cc;\n            }\n            puVar11 = puVar9 + -4;\n            *(undefined4 *)(puVar9 + -8) = 0;\n            *(int *)(puVar9 + -0xc) = iVar5;\n            *(int *)(puVar9 + -0x10) = iVar8;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191317;\n            FUN_00050e40();\n          }\n          else {\n            *(int **)(puVar9 + -0x10) = piVar4;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191579;\n            (*(code *)ppuVar2)();\n            local_c8 = local_5c;\n            puVar11 = puVar9 + -8;\n          }\n          piVar10 = (int *)piVar4[2];\n          if (local_64 == local_c8) {\n            if (local_60 != 0) {\n              if (local_60 == 1) {\n                *(undefined1 *)piVar10 = (undefined1)local_5c[0];\n                piVar10 = (int *)piVar4[2];\n              }\n              else {\n                *(int *)(puVar11 + -8) = local_60;\n                *(int **)(puVar11 + -0xc) = local_c8;\n                *(int **)(puVar11 + -0x10) = piVar10;\n                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;\n                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));\n                piVar10 = (int *)piVar4[2];\n              }\n            }\n            piVar4[3] = local_60;\n            *(undefined1 *)((int)piVar10 + local_60) = 0;\n            piVar10 = local_64;\n            iVar8 = local_5c[0];\n          }\n          else {\n            if (piVar10 == piVar4 + 4) {\n              piVar4[2] = (int)local_64;\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n            }\n            else {\n              piVar4[2] = (int)local_64;\n              iVar8 = piVar4[4];\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n              local_64 = piVar10;\n              if (piVar10 != (int *)0x0) goto LAB_00191357;\n            }\n            local_64 = local_c8;\n            local_c8 = local_5c;\n            piVar10 = local_c8;\n            iVar8 = local_5c[0];\n          }\nLAB_00191357:\n          local_5c[0] = iVar8;\n          local_60 = 0;\n          *(undefined1 *)piVar10 = 0;\n          if (local_64 != local_c8) {\n            *(int **)(puVar11 + -0x10) = local_64;\n            *(undefined4 *)(puVar11 + -0x14) = 0x19137b;\n            FUN_001e6db0();\n          }\n        }\n        *(int **)(puVar11 + -0xc) = local_98;\n        *(int *)(puVar11 + -0x10) = local_bc;\n        *(int *)(puVar11 + -0x14) = local_b0;\n        *(int *)(puVar11 + -0x18) = local_c0;\n        *(int *)(puVar11 + -0x1c) = local_b4;\n        *(int *)(puVar11 + -0x20) = local_c4;\n        *(int *)(puVar11 + -0x24) = piVar4[2];\n        *(undefined4 *)(puVar11 + -0x28) = param_2;\n        *(undefined ***)(puVar11 + -0x2c) = local_90 + -0x3d24b;\n        *(undefined4 *)(puVar11 + -0x30) = local_b8;\n        *(undefined4 *)(puVar11 + -0x34) = 0x1913c3;\n        FUN_000653f0();\n        piVar10 = (int *)puVar11;\n      }" if (parenthesized_expression "((puVar1[2] != 0) && (piVar10 = (int *)(puVar9 + -4), (*(byte *)(puVar1 + 5) & 1) != 0))" ( (binary_expression "(puVar1[2] != 0) && (piVar10 = (int *)(puVar9 + -4), (*(byte *)(puVar1 + 5) & 1) != 0)" (parenthesized_expression "(puVar1[2] != 0)" ( (binary_expression "puVar1[2] != 0" (subscript_expression "puVar1[2]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(piVar10 = (int *)(puVar9 + -4), (*(byte *)(puVar1 + 5) & 1) != 0)" ( (comma_expression "piVar10 = (int *)(puVar9 + -4), (*(byte *)(puVar1 + 5) & 1) != 0" (assignment_expression "piVar10 = (int *)(puVar9 + -4)" identifier = (cast_expression "(int *)(puVar9 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -4)" ( (binary_expression "puVar9 + -4" identifier + number_literal) )))) , (binary_expression "(*(byte *)(puVar1 + 5) & 1) != 0" (parenthesized_expression "(*(byte *)(puVar1 + 5) & 1)" ( (binary_expression "*(byte *)(puVar1 + 5) & 1" (pointer_expression "*(byte *)(puVar1 + 5)" * (cast_expression "(byte *)(puVar1 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 5)" ( (binary_expression "puVar1 + 5" identifier + number_literal) )))) & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n        local_b8 = *puVar1;\n        local_bc = local_7c / 1000;\n        local_98 = (int *)((local_7c % 1000) * 1000);\n        local_c0 = local_80 / 1000;\n        local_b0 = (local_80 % 1000) * 1000;\n        local_c4 = local_84 / 1000;\n        local_b4 = (local_84 % 1000) * 1000;\n        if (piVar4[3] == 0) {\n          ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n          if (ppuVar2 == local_90 + -0xc8a2c) {\n            iVar8 = piVar4[0xb];\n            local_c8 = local_5c;\n            iVar5 = -1;\n            local_64 = local_c8;\n            if (iVar8 != 0) {\n              *(int *)(puVar9 + -0x14) = iVar8;\n              *(undefined4 *)(puVar9 + -0x18) = 0x1912ff;\n              local_cc = iVar8;\n              sVar6 = strlen(*(char **)(puVar9 + -0x14));\n              iVar5 = sVar6 + local_cc;\n              iVar8 = local_cc;\n            }\n            puVar11 = puVar9 + -4;\n            *(undefined4 *)(puVar9 + -8) = 0;\n            *(int *)(puVar9 + -0xc) = iVar5;\n            *(int *)(puVar9 + -0x10) = iVar8;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191317;\n            FUN_00050e40();\n          }\n          else {\n            *(int **)(puVar9 + -0x10) = piVar4;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191579;\n            (*(code *)ppuVar2)();\n            local_c8 = local_5c;\n            puVar11 = puVar9 + -8;\n          }\n          piVar10 = (int *)piVar4[2];\n          if (local_64 == local_c8) {\n            if (local_60 != 0) {\n              if (local_60 == 1) {\n                *(undefined1 *)piVar10 = (undefined1)local_5c[0];\n                piVar10 = (int *)piVar4[2];\n              }\n              else {\n                *(int *)(puVar11 + -8) = local_60;\n                *(int **)(puVar11 + -0xc) = local_c8;\n                *(int **)(puVar11 + -0x10) = piVar10;\n                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;\n                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));\n                piVar10 = (int *)piVar4[2];\n              }\n            }\n            piVar4[3] = local_60;\n            *(undefined1 *)((int)piVar10 + local_60) = 0;\n            piVar10 = local_64;\n            iVar8 = local_5c[0];\n          }\n          else {\n            if (piVar10 == piVar4 + 4) {\n              piVar4[2] = (int)local_64;\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n            }\n            else {\n              piVar4[2] = (int)local_64;\n              iVar8 = piVar4[4];\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n              local_64 = piVar10;\n              if (piVar10 != (int *)0x0) goto LAB_00191357;\n            }\n            local_64 = local_c8;\n            local_c8 = local_5c;\n            piVar10 = local_c8;\n            iVar8 = local_5c[0];\n          }\nLAB_00191357:\n          local_5c[0] = iVar8;\n          local_60 = 0;\n          *(undefined1 *)piVar10 = 0;\n          if (local_64 != local_c8) {\n            *(int **)(puVar11 + -0x10) = local_64;\n            *(undefined4 *)(puVar11 + -0x14) = 0x19137b;\n            FUN_001e6db0();\n          }\n        }\n        *(int **)(puVar11 + -0xc) = local_98;\n        *(int *)(puVar11 + -0x10) = local_bc;\n        *(int *)(puVar11 + -0x14) = local_b0;\n        *(int *)(puVar11 + -0x18) = local_c0;\n        *(int *)(puVar11 + -0x1c) = local_b4;\n        *(int *)(puVar11 + -0x20) = local_c4;\n        *(int *)(puVar11 + -0x24) = piVar4[2];\n        *(undefined4 *)(puVar11 + -0x28) = param_2;\n        *(undefined ***)(puVar11 + -0x2c) = local_90 + -0x3d24b;\n        *(undefined4 *)(puVar11 + -0x30) = local_b8;\n        *(undefined4 *)(puVar11 + -0x34) = 0x1913c3;\n        FUN_000653f0();\n        piVar10 = (int *)puVar11;\n      }" { (expression_statement "local_b8 = *puVar1;" (assignment_expression "local_b8 = *puVar1" identifier = (pointer_expression "*puVar1" * identifier)) ;) (expression_statement "local_bc = local_7c / 1000;" (assignment_expression "local_bc = local_7c / 1000" identifier = (binary_expression "local_7c / 1000" identifier / number_literal)) ;) (expression_statement "local_98 = (int *)((local_7c % 1000) * 1000);" (assignment_expression "local_98 = (int *)((local_7c % 1000) * 1000)" identifier = (cast_expression "(int *)((local_7c % 1000) * 1000)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((local_7c % 1000) * 1000)" ( (binary_expression "(local_7c % 1000) * 1000" (parenthesized_expression "(local_7c % 1000)" ( (binary_expression "local_7c % 1000" identifier % number_literal) )) * number_literal) )))) ;) (expression_statement "local_c0 = local_80 / 1000;" (assignment_expression "local_c0 = local_80 / 1000" identifier = (binary_expression "local_80 / 1000" identifier / number_literal)) ;) (expression_statement "local_b0 = (local_80 % 1000) * 1000;" (assignment_expression "local_b0 = (local_80 % 1000) * 1000" identifier = (binary_expression "(local_80 % 1000) * 1000" (parenthesized_expression "(local_80 % 1000)" ( (binary_expression "local_80 % 1000" identifier % number_literal) )) * number_literal)) ;) (expression_statement "local_c4 = local_84 / 1000;" (assignment_expression "local_c4 = local_84 / 1000" identifier = (binary_expression "local_84 / 1000" identifier / number_literal)) ;) (expression_statement "local_b4 = (local_84 % 1000) * 1000;" (assignment_expression "local_b4 = (local_84 % 1000) * 1000" identifier = (binary_expression "(local_84 % 1000) * 1000" (parenthesized_expression "(local_84 % 1000)" ( (binary_expression "local_84 % 1000" identifier % number_literal) )) * number_literal)) ;) (if_statement "if (piVar4[3] == 0) {\n          ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n          if (ppuVar2 == local_90 + -0xc8a2c) {\n            iVar8 = piVar4[0xb];\n            local_c8 = local_5c;\n            iVar5 = -1;\n            local_64 = local_c8;\n            if (iVar8 != 0) {\n              *(int *)(puVar9 + -0x14) = iVar8;\n              *(undefined4 *)(puVar9 + -0x18) = 0x1912ff;\n              local_cc = iVar8;\n              sVar6 = strlen(*(char **)(puVar9 + -0x14));\n              iVar5 = sVar6 + local_cc;\n              iVar8 = local_cc;\n            }\n            puVar11 = puVar9 + -4;\n            *(undefined4 *)(puVar9 + -8) = 0;\n            *(int *)(puVar9 + -0xc) = iVar5;\n            *(int *)(puVar9 + -0x10) = iVar8;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191317;\n            FUN_00050e40();\n          }\n          else {\n            *(int **)(puVar9 + -0x10) = piVar4;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191579;\n            (*(code *)ppuVar2)();\n            local_c8 = local_5c;\n            puVar11 = puVar9 + -8;\n          }\n          piVar10 = (int *)piVar4[2];\n          if (local_64 == local_c8) {\n            if (local_60 != 0) {\n              if (local_60 == 1) {\n                *(undefined1 *)piVar10 = (undefined1)local_5c[0];\n                piVar10 = (int *)piVar4[2];\n              }\n              else {\n                *(int *)(puVar11 + -8) = local_60;\n                *(int **)(puVar11 + -0xc) = local_c8;\n                *(int **)(puVar11 + -0x10) = piVar10;\n                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;\n                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));\n                piVar10 = (int *)piVar4[2];\n              }\n            }\n            piVar4[3] = local_60;\n            *(undefined1 *)((int)piVar10 + local_60) = 0;\n            piVar10 = local_64;\n            iVar8 = local_5c[0];\n          }\n          else {\n            if (piVar10 == piVar4 + 4) {\n              piVar4[2] = (int)local_64;\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n            }\n            else {\n              piVar4[2] = (int)local_64;\n              iVar8 = piVar4[4];\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n              local_64 = piVar10;\n              if (piVar10 != (int *)0x0) goto LAB_00191357;\n            }\n            local_64 = local_c8;\n            local_c8 = local_5c;\n            piVar10 = local_c8;\n            iVar8 = local_5c[0];\n          }\nLAB_00191357:\n          local_5c[0] = iVar8;\n          local_60 = 0;\n          *(undefined1 *)piVar10 = 0;\n          if (local_64 != local_c8) {\n            *(int **)(puVar11 + -0x10) = local_64;\n            *(undefined4 *)(puVar11 + -0x14) = 0x19137b;\n            FUN_001e6db0();\n          }\n        }" if (parenthesized_expression "(piVar4[3] == 0)" ( (binary_expression "piVar4[3] == 0" (subscript_expression "piVar4[3]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n          if (ppuVar2 == local_90 + -0xc8a2c) {\n            iVar8 = piVar4[0xb];\n            local_c8 = local_5c;\n            iVar5 = -1;\n            local_64 = local_c8;\n            if (iVar8 != 0) {\n              *(int *)(puVar9 + -0x14) = iVar8;\n              *(undefined4 *)(puVar9 + -0x18) = 0x1912ff;\n              local_cc = iVar8;\n              sVar6 = strlen(*(char **)(puVar9 + -0x14));\n              iVar5 = sVar6 + local_cc;\n              iVar8 = local_cc;\n            }\n            puVar11 = puVar9 + -4;\n            *(undefined4 *)(puVar9 + -8) = 0;\n            *(int *)(puVar9 + -0xc) = iVar5;\n            *(int *)(puVar9 + -0x10) = iVar8;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191317;\n            FUN_00050e40();\n          }\n          else {\n            *(int **)(puVar9 + -0x10) = piVar4;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191579;\n            (*(code *)ppuVar2)();\n            local_c8 = local_5c;\n            puVar11 = puVar9 + -8;\n          }\n          piVar10 = (int *)piVar4[2];\n          if (local_64 == local_c8) {\n            if (local_60 != 0) {\n              if (local_60 == 1) {\n                *(undefined1 *)piVar10 = (undefined1)local_5c[0];\n                piVar10 = (int *)piVar4[2];\n              }\n              else {\n                *(int *)(puVar11 + -8) = local_60;\n                *(int **)(puVar11 + -0xc) = local_c8;\n                *(int **)(puVar11 + -0x10) = piVar10;\n                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;\n                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));\n                piVar10 = (int *)piVar4[2];\n              }\n            }\n            piVar4[3] = local_60;\n            *(undefined1 *)((int)piVar10 + local_60) = 0;\n            piVar10 = local_64;\n            iVar8 = local_5c[0];\n          }\n          else {\n            if (piVar10 == piVar4 + 4) {\n              piVar4[2] = (int)local_64;\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n            }\n            else {\n              piVar4[2] = (int)local_64;\n              iVar8 = piVar4[4];\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n              local_64 = piVar10;\n              if (piVar10 != (int *)0x0) goto LAB_00191357;\n            }\n            local_64 = local_c8;\n            local_c8 = local_5c;\n            piVar10 = local_c8;\n            iVar8 = local_5c[0];\n          }\nLAB_00191357:\n          local_5c[0] = iVar8;\n          local_60 = 0;\n          *(undefined1 *)piVar10 = 0;\n          if (local_64 != local_c8) {\n            *(int **)(puVar11 + -0x10) = local_64;\n            *(undefined4 *)(puVar11 + -0x14) = 0x19137b;\n            FUN_001e6db0();\n          }\n        }" { (expression_statement "ppuVar2 = *(undefined ***)(*piVar4 + 0x14);" (assignment_expression "ppuVar2 = *(undefined ***)(*piVar4 + 0x14)" identifier = (pointer_expression "*(undefined ***)(*piVar4 + 0x14)" * (cast_expression "(undefined ***)(*piVar4 + 0x14)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(*piVar4 + 0x14)" ( (binary_expression "*piVar4 + 0x14" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) ;) (if_statement "if (ppuVar2 == local_90 + -0xc8a2c) {\n            iVar8 = piVar4[0xb];\n            local_c8 = local_5c;\n            iVar5 = -1;\n            local_64 = local_c8;\n            if (iVar8 != 0) {\n              *(int *)(puVar9 + -0x14) = iVar8;\n              *(undefined4 *)(puVar9 + -0x18) = 0x1912ff;\n              local_cc = iVar8;\n              sVar6 = strlen(*(char **)(puVar9 + -0x14));\n              iVar5 = sVar6 + local_cc;\n              iVar8 = local_cc;\n            }\n            puVar11 = puVar9 + -4;\n            *(undefined4 *)(puVar9 + -8) = 0;\n            *(int *)(puVar9 + -0xc) = iVar5;\n            *(int *)(puVar9 + -0x10) = iVar8;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191317;\n            FUN_00050e40();\n          }\n          else {\n            *(int **)(puVar9 + -0x10) = piVar4;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191579;\n            (*(code *)ppuVar2)();\n            local_c8 = local_5c;\n            puVar11 = puVar9 + -8;\n          }" if (parenthesized_expression "(ppuVar2 == local_90 + -0xc8a2c)" ( (binary_expression "ppuVar2 == local_90 + -0xc8a2c" identifier == (binary_expression "local_90 + -0xc8a2c" identifier + number_literal)) )) (compound_statement "{\n            iVar8 = piVar4[0xb];\n            local_c8 = local_5c;\n            iVar5 = -1;\n            local_64 = local_c8;\n            if (iVar8 != 0) {\n              *(int *)(puVar9 + -0x14) = iVar8;\n              *(undefined4 *)(puVar9 + -0x18) = 0x1912ff;\n              local_cc = iVar8;\n              sVar6 = strlen(*(char **)(puVar9 + -0x14));\n              iVar5 = sVar6 + local_cc;\n              iVar8 = local_cc;\n            }\n            puVar11 = puVar9 + -4;\n            *(undefined4 *)(puVar9 + -8) = 0;\n            *(int *)(puVar9 + -0xc) = iVar5;\n            *(int *)(puVar9 + -0x10) = iVar8;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191317;\n            FUN_00050e40();\n          }" { (expression_statement "iVar8 = piVar4[0xb];" (assignment_expression "iVar8 = piVar4[0xb]" identifier = (subscript_expression "piVar4[0xb]" identifier [ number_literal ])) ;) (expression_statement "local_c8 = local_5c;" (assignment_expression "local_c8 = local_5c" identifier = identifier) ;) (expression_statement "iVar5 = -1;" (assignment_expression "iVar5 = -1" identifier = number_literal) ;) (expression_statement "local_64 = local_c8;" (assignment_expression "local_64 = local_c8" identifier = identifier) ;) (if_statement "if (iVar8 != 0) {\n              *(int *)(puVar9 + -0x14) = iVar8;\n              *(undefined4 *)(puVar9 + -0x18) = 0x1912ff;\n              local_cc = iVar8;\n              sVar6 = strlen(*(char **)(puVar9 + -0x14));\n              iVar5 = sVar6 + local_cc;\n              iVar8 = local_cc;\n            }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n              *(int *)(puVar9 + -0x14) = iVar8;\n              *(undefined4 *)(puVar9 + -0x18) = 0x1912ff;\n              local_cc = iVar8;\n              sVar6 = strlen(*(char **)(puVar9 + -0x14));\n              iVar5 = sVar6 + local_cc;\n              iVar8 = local_cc;\n            }" { (expression_statement "*(int *)(puVar9 + -0x14) = iVar8;" (assignment_expression "*(int *)(puVar9 + -0x14) = iVar8" (pointer_expression "*(int *)(puVar9 + -0x14)" * (cast_expression "(int *)(puVar9 + -0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x14)" ( (binary_expression "puVar9 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar9 + -0x18) = 0x1912ff;" (assignment_expression "*(undefined4 *)(puVar9 + -0x18) = 0x1912ff" (pointer_expression "*(undefined4 *)(puVar9 + -0x18)" * (cast_expression "(undefined4 *)(puVar9 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x18)" ( (binary_expression "puVar9 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_cc = iVar8;" (assignment_expression "local_cc = iVar8" identifier = identifier) ;) (expression_statement "sVar6 = strlen(*(char **)(puVar9 + -0x14));" (assignment_expression "sVar6 = strlen(*(char **)(puVar9 + -0x14))" identifier = (call_expression "strlen(*(char **)(puVar9 + -0x14))" identifier (argument_list "(*(char **)(puVar9 + -0x14))" ( (pointer_expression "*(char **)(puVar9 + -0x14)" * (cast_expression "(char **)(puVar9 + -0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x14)" ( (binary_expression "puVar9 + -0x14" identifier + number_literal) )))) )))) ;) (expression_statement "iVar5 = sVar6 + local_cc;" (assignment_expression "iVar5 = sVar6 + local_cc" identifier = (binary_expression "sVar6 + local_cc" identifier + identifier)) ;) (expression_statement "iVar8 = local_cc;" (assignment_expression "iVar8 = local_cc" identifier = identifier) ;) })) (expression_statement "puVar11 = puVar9 + -4;" (assignment_expression "puVar11 = puVar9 + -4" identifier = (binary_expression "puVar9 + -4" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar9 + -8) = 0;" (assignment_expression "*(undefined4 *)(puVar9 + -8) = 0" (pointer_expression "*(undefined4 *)(puVar9 + -8)" * (cast_expression "(undefined4 *)(puVar9 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -8)" ( (binary_expression "puVar9 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar9 + -0xc) = iVar5;" (assignment_expression "*(int *)(puVar9 + -0xc) = iVar5" (pointer_expression "*(int *)(puVar9 + -0xc)" * (cast_expression "(int *)(puVar9 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0xc)" ( (binary_expression "puVar9 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar9 + -0x10) = iVar8;" (assignment_expression "*(int *)(puVar9 + -0x10) = iVar8" (pointer_expression "*(int *)(puVar9 + -0x10)" * (cast_expression "(int *)(puVar9 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x10)" ( (binary_expression "puVar9 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int ***)(puVar9 + -0x14) = &local_64;" (assignment_expression "*(int ***)(puVar9 + -0x14) = &local_64" (pointer_expression "*(int ***)(puVar9 + -0x14)" * (cast_expression "(int ***)(puVar9 + -0x14)" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar9 + -0x14)" ( (binary_expression "puVar9 + -0x14" identifier + number_literal) )))) = (pointer_expression "&local_64" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar9 + -0x18) = 0x191317;" (assignment_expression "*(undefined4 *)(puVar9 + -0x18) = 0x191317" (pointer_expression "*(undefined4 *)(puVar9 + -0x18)" * (cast_expression "(undefined4 *)(puVar9 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x18)" ( (binary_expression "puVar9 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00050e40();" (call_expression "FUN_00050e40()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n            *(int **)(puVar9 + -0x10) = piVar4;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191579;\n            (*(code *)ppuVar2)();\n            local_c8 = local_5c;\n            puVar11 = puVar9 + -8;\n          }" else (compound_statement "{\n            *(int **)(puVar9 + -0x10) = piVar4;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191579;\n            (*(code *)ppuVar2)();\n            local_c8 = local_5c;\n            puVar11 = puVar9 + -8;\n          }" { (expression_statement "*(int **)(puVar9 + -0x10) = piVar4;" (assignment_expression "*(int **)(puVar9 + -0x10) = piVar4" (pointer_expression "*(int **)(puVar9 + -0x10)" * (cast_expression "(int **)(puVar9 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x10)" ( (binary_expression "puVar9 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int ***)(puVar9 + -0x14) = &local_64;" (assignment_expression "*(int ***)(puVar9 + -0x14) = &local_64" (pointer_expression "*(int ***)(puVar9 + -0x14)" * (cast_expression "(int ***)(puVar9 + -0x14)" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar9 + -0x14)" ( (binary_expression "puVar9 + -0x14" identifier + number_literal) )))) = (pointer_expression "&local_64" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar9 + -0x18) = 0x191579;" (assignment_expression "*(undefined4 *)(puVar9 + -0x18) = 0x191579" (pointer_expression "*(undefined4 *)(puVar9 + -0x18)" * (cast_expression "(undefined4 *)(puVar9 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x18)" ( (binary_expression "puVar9 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*(code *)ppuVar2)();" (call_expression "(*(code *)ppuVar2)()" (parenthesized_expression "(*(code *)ppuVar2)" ( (pointer_expression "*(code *)ppuVar2" * (cast_expression "(code *)ppuVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "local_c8 = local_5c;" (assignment_expression "local_c8 = local_5c" identifier = identifier) ;) (expression_statement "puVar11 = puVar9 + -8;" (assignment_expression "puVar11 = puVar9 + -8" identifier = (binary_expression "puVar9 + -8" identifier + number_literal)) ;) }))) (expression_statement "piVar10 = (int *)piVar4[2];" (assignment_expression "piVar10 = (int *)piVar4[2]" identifier = (cast_expression "(int *)piVar4[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar4[2]" identifier [ number_literal ]))) ;) (if_statement "if (local_64 == local_c8) {\n            if (local_60 != 0) {\n              if (local_60 == 1) {\n                *(undefined1 *)piVar10 = (undefined1)local_5c[0];\n                piVar10 = (int *)piVar4[2];\n              }\n              else {\n                *(int *)(puVar11 + -8) = local_60;\n                *(int **)(puVar11 + -0xc) = local_c8;\n                *(int **)(puVar11 + -0x10) = piVar10;\n                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;\n                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));\n                piVar10 = (int *)piVar4[2];\n              }\n            }\n            piVar4[3] = local_60;\n            *(undefined1 *)((int)piVar10 + local_60) = 0;\n            piVar10 = local_64;\n            iVar8 = local_5c[0];\n          }\n          else {\n            if (piVar10 == piVar4 + 4) {\n              piVar4[2] = (int)local_64;\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n            }\n            else {\n              piVar4[2] = (int)local_64;\n              iVar8 = piVar4[4];\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n              local_64 = piVar10;\n              if (piVar10 != (int *)0x0) goto LAB_00191357;\n            }\n            local_64 = local_c8;\n            local_c8 = local_5c;\n            piVar10 = local_c8;\n            iVar8 = local_5c[0];\n          }" if (parenthesized_expression "(local_64 == local_c8)" ( (binary_expression "local_64 == local_c8" identifier == identifier) )) (compound_statement "{\n            if (local_60 != 0) {\n              if (local_60 == 1) {\n                *(undefined1 *)piVar10 = (undefined1)local_5c[0];\n                piVar10 = (int *)piVar4[2];\n              }\n              else {\n                *(int *)(puVar11 + -8) = local_60;\n                *(int **)(puVar11 + -0xc) = local_c8;\n                *(int **)(puVar11 + -0x10) = piVar10;\n                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;\n                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));\n                piVar10 = (int *)piVar4[2];\n              }\n            }\n            piVar4[3] = local_60;\n            *(undefined1 *)((int)piVar10 + local_60) = 0;\n            piVar10 = local_64;\n            iVar8 = local_5c[0];\n          }" { (if_statement "if (local_60 != 0) {\n              if (local_60 == 1) {\n                *(undefined1 *)piVar10 = (undefined1)local_5c[0];\n                piVar10 = (int *)piVar4[2];\n              }\n              else {\n                *(int *)(puVar11 + -8) = local_60;\n                *(int **)(puVar11 + -0xc) = local_c8;\n                *(int **)(puVar11 + -0x10) = piVar10;\n                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;\n                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));\n                piVar10 = (int *)piVar4[2];\n              }\n            }" if (parenthesized_expression "(local_60 != 0)" ( (binary_expression "local_60 != 0" identifier != number_literal) )) (compound_statement "{\n              if (local_60 == 1) {\n                *(undefined1 *)piVar10 = (undefined1)local_5c[0];\n                piVar10 = (int *)piVar4[2];\n              }\n              else {\n                *(int *)(puVar11 + -8) = local_60;\n                *(int **)(puVar11 + -0xc) = local_c8;\n                *(int **)(puVar11 + -0x10) = piVar10;\n                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;\n                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));\n                piVar10 = (int *)piVar4[2];\n              }\n            }" { (if_statement "if (local_60 == 1) {\n                *(undefined1 *)piVar10 = (undefined1)local_5c[0];\n                piVar10 = (int *)piVar4[2];\n              }\n              else {\n                *(int *)(puVar11 + -8) = local_60;\n                *(int **)(puVar11 + -0xc) = local_c8;\n                *(int **)(puVar11 + -0x10) = piVar10;\n                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;\n                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));\n                piVar10 = (int *)piVar4[2];\n              }" if (parenthesized_expression "(local_60 == 1)" ( (binary_expression "local_60 == 1" identifier == number_literal) )) (compound_statement "{\n                *(undefined1 *)piVar10 = (undefined1)local_5c[0];\n                piVar10 = (int *)piVar4[2];\n              }" { (expression_statement "*(undefined1 *)piVar10 = (undefined1)local_5c[0];" (assignment_expression "*(undefined1 *)piVar10 = (undefined1)local_5c[0]" (pointer_expression "*(undefined1 *)piVar10" * (cast_expression "(undefined1 *)piVar10" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(undefined1)local_5c[0]" ( (type_descriptor "undefined1" type_identifier) ) (subscript_expression "local_5c[0]" identifier [ number_literal ]))) ;) (expression_statement "piVar10 = (int *)piVar4[2];" (assignment_expression "piVar10 = (int *)piVar4[2]" identifier = (cast_expression "(int *)piVar4[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar4[2]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n                *(int *)(puVar11 + -8) = local_60;\n                *(int **)(puVar11 + -0xc) = local_c8;\n                *(int **)(puVar11 + -0x10) = piVar10;\n                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;\n                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));\n                piVar10 = (int *)piVar4[2];\n              }" else (compound_statement "{\n                *(int *)(puVar11 + -8) = local_60;\n                *(int **)(puVar11 + -0xc) = local_c8;\n                *(int **)(puVar11 + -0x10) = piVar10;\n                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;\n                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));\n                piVar10 = (int *)piVar4[2];\n              }" { (expression_statement "*(int *)(puVar11 + -8) = local_60;" (assignment_expression "*(int *)(puVar11 + -8) = local_60" (pointer_expression "*(int *)(puVar11 + -8)" * (cast_expression "(int *)(puVar11 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -8)" ( (binary_expression "puVar11 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar11 + -0xc) = local_c8;" (assignment_expression "*(int **)(puVar11 + -0xc) = local_c8" (pointer_expression "*(int **)(puVar11 + -0xc)" * (cast_expression "(int **)(puVar11 + -0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0xc)" ( (binary_expression "puVar11 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar11 + -0x10) = piVar10;" (assignment_expression "*(int **)(puVar11 + -0x10) = piVar10" (pointer_expression "*(int **)(puVar11 + -0x10)" * (cast_expression "(int **)(puVar11 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x10)" ( (binary_expression "puVar11 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x14) = 0x19154f;" (assignment_expression "*(undefined4 *)(puVar11 + -0x14) = 0x19154f" (pointer_expression "*(undefined4 *)(puVar11 + -0x14)" * (cast_expression "(undefined4 *)(puVar11 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));" (call_expression "memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8))" identifier (argument_list "(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8))" ( (pointer_expression "*(void **)(puVar11 + -0x10)" * (cast_expression "(void **)(puVar11 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x10)" ( (binary_expression "puVar11 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(void **)(puVar11 + -0xc)" * (cast_expression "(void **)(puVar11 + -0xc)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0xc)" ( (binary_expression "puVar11 + -0xc" identifier + number_literal) )))) , (pointer_expression "*(size_t *)(puVar11 + -8)" * (cast_expression "(size_t *)(puVar11 + -8)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -8)" ( (binary_expression "puVar11 + -8" identifier + number_literal) )))) ))) ;) (expression_statement "piVar10 = (int *)piVar4[2];" (assignment_expression "piVar10 = (int *)piVar4[2]" identifier = (cast_expression "(int *)piVar4[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar4[2]" identifier [ number_literal ]))) ;) }))) })) (expression_statement "piVar4[3] = local_60;" (assignment_expression "piVar4[3] = local_60" (subscript_expression "piVar4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)piVar10 + local_60) = 0;" (assignment_expression "*(undefined1 *)((int)piVar10 + local_60) = 0" (pointer_expression "*(undefined1 *)((int)piVar10 + local_60)" * (cast_expression "(undefined1 *)((int)piVar10 + local_60)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + local_60)" ( (binary_expression "(int)piVar10 + local_60" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "piVar10 = local_64;" (assignment_expression "piVar10 = local_64" identifier = identifier) ;) (expression_statement "iVar8 = local_5c[0];" (assignment_expression "iVar8 = local_5c[0]" identifier = (subscript_expression "local_5c[0]" identifier [ number_literal ])) ;) }) (else_clause "else {\n            if (piVar10 == piVar4 + 4) {\n              piVar4[2] = (int)local_64;\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n            }\n            else {\n              piVar4[2] = (int)local_64;\n              iVar8 = piVar4[4];\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n              local_64 = piVar10;\n              if (piVar10 != (int *)0x0) goto LAB_00191357;\n            }\n            local_64 = local_c8;\n            local_c8 = local_5c;\n            piVar10 = local_c8;\n            iVar8 = local_5c[0];\n          }" else (compound_statement "{\n            if (piVar10 == piVar4 + 4) {\n              piVar4[2] = (int)local_64;\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n            }\n            else {\n              piVar4[2] = (int)local_64;\n              iVar8 = piVar4[4];\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n              local_64 = piVar10;\n              if (piVar10 != (int *)0x0) goto LAB_00191357;\n            }\n            local_64 = local_c8;\n            local_c8 = local_5c;\n            piVar10 = local_c8;\n            iVar8 = local_5c[0];\n          }" { (if_statement "if (piVar10 == piVar4 + 4) {\n              piVar4[2] = (int)local_64;\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n            }\n            else {\n              piVar4[2] = (int)local_64;\n              iVar8 = piVar4[4];\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n              local_64 = piVar10;\n              if (piVar10 != (int *)0x0) goto LAB_00191357;\n            }" if (parenthesized_expression "(piVar10 == piVar4 + 4)" ( (binary_expression "piVar10 == piVar4 + 4" identifier == (binary_expression "piVar4 + 4" identifier + number_literal)) )) (compound_statement "{\n              piVar4[2] = (int)local_64;\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n            }" { (expression_statement "piVar4[2] = (int)local_64;" (assignment_expression "piVar4[2] = (int)local_64" (subscript_expression "piVar4[2]" identifier [ number_literal ]) = (cast_expression "(int)local_64" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar4[3] = local_60;" (assignment_expression "piVar4[3] = local_60" (subscript_expression "piVar4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar4[4] = local_5c[0];" (assignment_expression "piVar4[4] = local_5c[0]" (subscript_expression "piVar4[4]" identifier [ number_literal ]) = (subscript_expression "local_5c[0]" identifier [ number_literal ])) ;) }) (else_clause "else {\n              piVar4[2] = (int)local_64;\n              iVar8 = piVar4[4];\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n              local_64 = piVar10;\n              if (piVar10 != (int *)0x0) goto LAB_00191357;\n            }" else (compound_statement "{\n              piVar4[2] = (int)local_64;\n              iVar8 = piVar4[4];\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n              local_64 = piVar10;\n              if (piVar10 != (int *)0x0) goto LAB_00191357;\n            }" { (expression_statement "piVar4[2] = (int)local_64;" (assignment_expression "piVar4[2] = (int)local_64" (subscript_expression "piVar4[2]" identifier [ number_literal ]) = (cast_expression "(int)local_64" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "iVar8 = piVar4[4];" (assignment_expression "iVar8 = piVar4[4]" identifier = (subscript_expression "piVar4[4]" identifier [ number_literal ])) ;) (expression_statement "piVar4[3] = local_60;" (assignment_expression "piVar4[3] = local_60" (subscript_expression "piVar4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar4[4] = local_5c[0];" (assignment_expression "piVar4[4] = local_5c[0]" (subscript_expression "piVar4[4]" identifier [ number_literal ]) = (subscript_expression "local_5c[0]" identifier [ number_literal ])) ;) (expression_statement "local_64 = piVar10;" (assignment_expression "local_64 = piVar10" identifier = identifier) ;) (if_statement "if (piVar10 != (int *)0x0) goto LAB_00191357;" if (parenthesized_expression "(piVar10 != (int *)0x0)" ( (binary_expression "piVar10 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00191357;" goto statement_identifier ;)) }))) (expression_statement "local_64 = local_c8;" (assignment_expression "local_64 = local_c8" identifier = identifier) ;) (expression_statement "local_c8 = local_5c;" (assignment_expression "local_c8 = local_5c" identifier = identifier) ;) (expression_statement "piVar10 = local_c8;" (assignment_expression "piVar10 = local_c8" identifier = identifier) ;) (expression_statement "iVar8 = local_5c[0];" (assignment_expression "iVar8 = local_5c[0]" identifier = (subscript_expression "local_5c[0]" identifier [ number_literal ])) ;) }))) (labeled_statement "LAB_00191357:\n          local_5c[0] = iVar8;" statement_identifier : (expression_statement "local_5c[0] = iVar8;" (assignment_expression "local_5c[0] = iVar8" (subscript_expression "local_5c[0]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (expression_statement "*(undefined1 *)piVar10 = 0;" (assignment_expression "*(undefined1 *)piVar10 = 0" (pointer_expression "*(undefined1 *)piVar10" * (cast_expression "(undefined1 *)piVar10" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (if_statement "if (local_64 != local_c8) {\n            *(int **)(puVar11 + -0x10) = local_64;\n            *(undefined4 *)(puVar11 + -0x14) = 0x19137b;\n            FUN_001e6db0();\n          }" if (parenthesized_expression "(local_64 != local_c8)" ( (binary_expression "local_64 != local_c8" identifier != identifier) )) (compound_statement "{\n            *(int **)(puVar11 + -0x10) = local_64;\n            *(undefined4 *)(puVar11 + -0x14) = 0x19137b;\n            FUN_001e6db0();\n          }" { (expression_statement "*(int **)(puVar11 + -0x10) = local_64;" (assignment_expression "*(int **)(puVar11 + -0x10) = local_64" (pointer_expression "*(int **)(puVar11 + -0x10)" * (cast_expression "(int **)(puVar11 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x10)" ( (binary_expression "puVar11 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x14) = 0x19137b;" (assignment_expression "*(undefined4 *)(puVar11 + -0x14) = 0x19137b" (pointer_expression "*(undefined4 *)(puVar11 + -0x14)" * (cast_expression "(undefined4 *)(puVar11 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" identifier (argument_list "()" ( ))) ;) })) })) (expression_statement "*(int **)(puVar11 + -0xc) = local_98;" (assignment_expression "*(int **)(puVar11 + -0xc) = local_98" (pointer_expression "*(int **)(puVar11 + -0xc)" * (cast_expression "(int **)(puVar11 + -0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0xc)" ( (binary_expression "puVar11 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar11 + -0x10) = local_bc;" (assignment_expression "*(int *)(puVar11 + -0x10) = local_bc" (pointer_expression "*(int *)(puVar11 + -0x10)" * (cast_expression "(int *)(puVar11 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x10)" ( (binary_expression "puVar11 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar11 + -0x14) = local_b0;" (assignment_expression "*(int *)(puVar11 + -0x14) = local_b0" (pointer_expression "*(int *)(puVar11 + -0x14)" * (cast_expression "(int *)(puVar11 + -0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar11 + -0x18) = local_c0;" (assignment_expression "*(int *)(puVar11 + -0x18) = local_c0" (pointer_expression "*(int *)(puVar11 + -0x18)" * (cast_expression "(int *)(puVar11 + -0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x18)" ( (binary_expression "puVar11 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar11 + -0x1c) = local_b4;" (assignment_expression "*(int *)(puVar11 + -0x1c) = local_b4" (pointer_expression "*(int *)(puVar11 + -0x1c)" * (cast_expression "(int *)(puVar11 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x1c)" ( (binary_expression "puVar11 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar11 + -0x20) = local_c4;" (assignment_expression "*(int *)(puVar11 + -0x20) = local_c4" (pointer_expression "*(int *)(puVar11 + -0x20)" * (cast_expression "(int *)(puVar11 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x20)" ( (binary_expression "puVar11 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar11 + -0x24) = piVar4[2];" (assignment_expression "*(int *)(puVar11 + -0x24) = piVar4[2]" (pointer_expression "*(int *)(puVar11 + -0x24)" * (cast_expression "(int *)(puVar11 + -0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x24)" ( (binary_expression "puVar11 + -0x24" identifier + number_literal) )))) = (subscript_expression "piVar4[2]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x28) = param_2;" (assignment_expression "*(undefined4 *)(puVar11 + -0x28) = param_2" (pointer_expression "*(undefined4 *)(puVar11 + -0x28)" * (cast_expression "(undefined4 *)(puVar11 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x28)" ( (binary_expression "puVar11 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)(puVar11 + -0x2c) = local_90 + -0x3d24b;" (assignment_expression "*(undefined ***)(puVar11 + -0x2c) = local_90 + -0x3d24b" (pointer_expression "*(undefined ***)(puVar11 + -0x2c)" * (cast_expression "(undefined ***)(puVar11 + -0x2c)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar11 + -0x2c)" ( (binary_expression "puVar11 + -0x2c" identifier + number_literal) )))) = (binary_expression "local_90 + -0x3d24b" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x30) = local_b8;" (assignment_expression "*(undefined4 *)(puVar11 + -0x30) = local_b8" (pointer_expression "*(undefined4 *)(puVar11 + -0x30)" * (cast_expression "(undefined4 *)(puVar11 + -0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x30)" ( (binary_expression "puVar11 + -0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x34) = 0x1913c3;" (assignment_expression "*(undefined4 *)(puVar11 + -0x34) = 0x1913c3" (pointer_expression "*(undefined4 *)(puVar11 + -0x34)" * (cast_expression "(undefined4 *)(puVar11 + -0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x34)" ( (binary_expression "puVar11 + -0x34" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000653f0();" (call_expression "FUN_000653f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar10 = (int *)puVar11;" (assignment_expression "piVar10 = (int *)puVar11" identifier = (cast_expression "(int *)puVar11" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) })) (expression_statement "iVar8 = *(int *)*param_1;" (assignment_expression "iVar8 = *(int *)*param_1" identifier = (pointer_expression "*(int *)*param_1" * (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)))) ;) (expression_statement "*(int **)((int)piVar10 + -0x10) = (int *)*param_1;" (assignment_expression "*(int **)((int)piVar10 + -0x10) = (int *)*param_1" (pointer_expression "*(int **)((int)piVar10 + -0x10)" * (cast_expression "(int **)((int)piVar10 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar10 + -0x10)" ( (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "pcVar3 = *(code **)(iVar8 + 8);" (assignment_expression "pcVar3 = *(code **)(iVar8 + 8)" identifier = (pointer_expression "*(code **)(iVar8 + 8)" * (cast_expression "(code **)(iVar8 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x190f43;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x190f43" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0x14)" ( (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar3)();" (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "param_1[5] = param_1[5] + -1;" (assignment_expression "param_1[5] = param_1[5] + -1" (subscript_expression "param_1[5]" identifier [ number_literal ]) = (binary_expression "param_1[5] + -1" (subscript_expression "param_1[5]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "*(undefined4 **)((int)piVar10 + -8) = local_a0;" (assignment_expression "*(undefined4 **)((int)piVar10 + -8) = local_a0" (pointer_expression "*(undefined4 **)((int)piVar10 + -8)" * (cast_expression "(undefined4 **)((int)piVar10 + -8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar10 + -8)" ( (binary_expression "(int)piVar10 + -8" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)piVar10 + -0xc) = piVar4;" (assignment_expression "*(int **)((int)piVar10 + -0xc) = piVar4" (pointer_expression "*(int **)((int)piVar10 + -0xc)" * (cast_expression "(int **)((int)piVar10 + -0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar10 + -0xc)" ( (binary_expression "(int)piVar10 + -0xc" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)piVar10 + -0x10) = param_1;" (assignment_expression "*(undefined4 **)((int)piVar10 + -0x10) = param_1" (pointer_expression "*(undefined4 **)((int)piVar10 + -0x10)" * (cast_expression "(undefined4 **)((int)piVar10 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar10 + -0x10)" ( (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x190f57;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x190f57" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0x14)" ( (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_98 = (int *)FUN_00190b90();" (assignment_expression "local_98 = (int *)FUN_00190b90()" identifier = (cast_expression "(int *)FUN_00190b90()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00190b90()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (local_98 == (int *)0x0) {\n      *(undefined4 **)((int)piVar10 + -0x10) = param_1;\n                    /* try { // try from 00191414 to 00191440 has its CatchHandler @ 001915f9 */\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191419;\n      local_98 = (int *)FUN_00190880();\n      if (local_98 != (int *)0x0) goto LAB_00190f68;\n    }\n    else {\nLAB_00190f68:\n      local_78[0] = 0;\n      ppuVar2 = *(undefined ***)(*local_98 + 0xc);\n      if (ppuVar2 != local_ac) {\n        *(undefined4 **)((int)piVar10 + -0xc) = local_a0;\n        *(int **)((int)piVar10 + -0x10) = local_98;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191441;\n        (*(code *)ppuVar2)();\n      }\n      param_1[5] = param_1[5] + 1;\n    }" if (parenthesized_expression "(local_98 == (int *)0x0)" ( (binary_expression "local_98 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      *(undefined4 **)((int)piVar10 + -0x10) = param_1;\n                    /* try { // try from 00191414 to 00191440 has its CatchHandler @ 001915f9 */\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191419;\n      local_98 = (int *)FUN_00190880();\n      if (local_98 != (int *)0x0) goto LAB_00190f68;\n    }" { (expression_statement "*(undefined4 **)((int)piVar10 + -0x10) = param_1;" (assignment_expression "*(undefined4 **)((int)piVar10 + -0x10) = param_1" (pointer_expression "*(undefined4 **)((int)piVar10 + -0x10)" * (cast_expression "(undefined4 **)((int)piVar10 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar10 + -0x10)" ( (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x191419;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x191419" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0x14)" ( (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_98 = (int *)FUN_00190880();" (assignment_expression "local_98 = (int *)FUN_00190880()" identifier = (cast_expression "(int *)FUN_00190880()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00190880()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (local_98 != (int *)0x0) goto LAB_00190f68;" if (parenthesized_expression "(local_98 != (int *)0x0)" ( (binary_expression "local_98 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00190f68;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_00190f68:\n      local_78[0] = 0;\n      ppuVar2 = *(undefined ***)(*local_98 + 0xc);\n      if (ppuVar2 != local_ac) {\n        *(undefined4 **)((int)piVar10 + -0xc) = local_a0;\n        *(int **)((int)piVar10 + -0x10) = local_98;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191441;\n        (*(code *)ppuVar2)();\n      }\n      param_1[5] = param_1[5] + 1;\n    }" else (compound_statement "{\nLAB_00190f68:\n      local_78[0] = 0;\n      ppuVar2 = *(undefined ***)(*local_98 + 0xc);\n      if (ppuVar2 != local_ac) {\n        *(undefined4 **)((int)piVar10 + -0xc) = local_a0;\n        *(int **)((int)piVar10 + -0x10) = local_98;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191441;\n        (*(code *)ppuVar2)();\n      }\n      param_1[5] = param_1[5] + 1;\n    }" { (labeled_statement "LAB_00190f68:\n      local_78[0] = 0;" statement_identifier : (expression_statement "local_78[0] = 0;" (assignment_expression "local_78[0] = 0" (subscript_expression "local_78[0]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "ppuVar2 = *(undefined ***)(*local_98 + 0xc);" (assignment_expression "ppuVar2 = *(undefined ***)(*local_98 + 0xc)" identifier = (pointer_expression "*(undefined ***)(*local_98 + 0xc)" * (cast_expression "(undefined ***)(*local_98 + 0xc)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(*local_98 + 0xc)" ( (binary_expression "*local_98 + 0xc" (pointer_expression "*local_98" * identifier) + number_literal) ))))) ;) (if_statement "if (ppuVar2 != local_ac) {\n        *(undefined4 **)((int)piVar10 + -0xc) = local_a0;\n        *(int **)((int)piVar10 + -0x10) = local_98;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191441;\n        (*(code *)ppuVar2)();\n      }" if (parenthesized_expression "(ppuVar2 != local_ac)" ( (binary_expression "ppuVar2 != local_ac" identifier != identifier) )) (compound_statement "{\n        *(undefined4 **)((int)piVar10 + -0xc) = local_a0;\n        *(int **)((int)piVar10 + -0x10) = local_98;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191441;\n        (*(code *)ppuVar2)();\n      }" { (expression_statement "*(undefined4 **)((int)piVar10 + -0xc) = local_a0;" (assignment_expression "*(undefined4 **)((int)piVar10 + -0xc) = local_a0" (pointer_expression "*(undefined4 **)((int)piVar10 + -0xc)" * (cast_expression "(undefined4 **)((int)piVar10 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar10 + -0xc)" ( (binary_expression "(int)piVar10 + -0xc" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)piVar10 + -0x10) = local_98;" (assignment_expression "*(int **)((int)piVar10 + -0x10) = local_98" (pointer_expression "*(int **)((int)piVar10 + -0x10)" * (cast_expression "(int **)((int)piVar10 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar10 + -0x10)" ( (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x191441;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x191441" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0x14)" ( (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*(code *)ppuVar2)();" (call_expression "(*(code *)ppuVar2)()" (parenthesized_expression "(*(code *)ppuVar2)" ( (pointer_expression "*(code *)ppuVar2" * (cast_expression "(code *)ppuVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "param_1[5] = param_1[5] + 1;" (assignment_expression "param_1[5] = param_1[5] + 1" (subscript_expression "param_1[5]" identifier [ number_literal ]) = (binary_expression "param_1[5] + 1" (subscript_expression "param_1[5]" identifier [ number_literal ]) + number_literal)) ;) }))) (expression_statement "iVar8 = *(int *)*param_1;" (assignment_expression "iVar8 = *(int *)*param_1" identifier = (pointer_expression "*(int *)*param_1" * (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)))) ;) (expression_statement "*(int **)((int)piVar10 + -0x10) = (int *)*param_1;" (assignment_expression "*(int **)((int)piVar10 + -0x10) = (int *)*param_1" (pointer_expression "*(int **)((int)piVar10 + -0x10)" * (cast_expression "(int **)((int)piVar10 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar10 + -0x10)" ( (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "pcVar3 = *(code **)(iVar8 + 0xc);" (assignment_expression "pcVar3 = *(code **)(iVar8 + 0xc)" identifier = (pointer_expression "*(code **)(iVar8 + 0xc)" * (cast_expression "(code **)(iVar8 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 0xc)" ( (binary_expression "iVar8 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x190f95;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x190f95" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0x14)" ( (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar3)();" (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "ppuVar2 = *(undefined ***)(*piVar4 + 4);" (assignment_expression "ppuVar2 = *(undefined ***)(*piVar4 + 4)" identifier = (pointer_expression "*(undefined ***)(*piVar4 + 4)" * (cast_expression "(undefined ***)(*piVar4 + 4)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(*piVar4 + 4)" ( (binary_expression "*piVar4 + 4" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) ;) (if_statement "if (ppuVar2 == local_90 + -0xc8ab8) {\n      *piVar4 = (int)(local_90 + -0x307b);\n      piVar7 = (int *)piVar4[9];\n      if (piVar7 != (int *)0x0) {\n        iVar8 = *piVar7;\n        *(int **)((int)piVar10 + -0x10) = piVar7;\n        pcVar3 = *(code **)(iVar8 + 4);\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x190fc9;\n        (*pcVar3)();\n      }\n      iVar8 = piVar4[10];\n      if (iVar8 != 0) {\n        if (*(int *)(iVar8 + 4) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 100;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915d4;\n          FUN_00069d00();\n        }\n        if (*(int *)(iVar8 + 8) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x65;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined1 **)((int)piVar10 + -0x14) = &LAB_001915f2;\n          FUN_00069d00();\n        }\n        if ((*(int *)(iVar8 + 0xc) != 0) || (*(int *)(iVar8 + 0x10) != 0)) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d215;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x2c;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915b6;\n          FUN_00069d00();\n        }\n        *(undefined4 *)((int)piVar10 + -0xc) = 0x14;\n        *(int *)((int)piVar10 + -0x10) = iVar8;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191010;\n        FUN_001e6d90();\n      }\n      *piVar4 = (int)(local_90 + -0x1717);\n      if ((int *)piVar4[2] != piVar4 + 4) {\n        *(int **)((int)piVar10 + -0x10) = (int *)piVar4[2];\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191034;\n        FUN_001e6db0();\n      }\n      *(undefined4 *)((int)piVar10 + -0xc) = 0x30;\n      *(int **)((int)piVar10 + -0x10) = piVar4;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191048;\n      FUN_001e6d90();\n      piVar4 = local_98;\n    }\n    else {\n      *(int **)((int)piVar10 + -0x10) = piVar4;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x1913d6;\n      (*(code *)ppuVar2)();\n      piVar4 = local_98;\n    }" if (parenthesized_expression "(ppuVar2 == local_90 + -0xc8ab8)" ( (binary_expression "ppuVar2 == local_90 + -0xc8ab8" identifier == (binary_expression "local_90 + -0xc8ab8" identifier + number_literal)) )) (compound_statement "{\n      *piVar4 = (int)(local_90 + -0x307b);\n      piVar7 = (int *)piVar4[9];\n      if (piVar7 != (int *)0x0) {\n        iVar8 = *piVar7;\n        *(int **)((int)piVar10 + -0x10) = piVar7;\n        pcVar3 = *(code **)(iVar8 + 4);\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x190fc9;\n        (*pcVar3)();\n      }\n      iVar8 = piVar4[10];\n      if (iVar8 != 0) {\n        if (*(int *)(iVar8 + 4) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 100;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915d4;\n          FUN_00069d00();\n        }\n        if (*(int *)(iVar8 + 8) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x65;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined1 **)((int)piVar10 + -0x14) = &LAB_001915f2;\n          FUN_00069d00();\n        }\n        if ((*(int *)(iVar8 + 0xc) != 0) || (*(int *)(iVar8 + 0x10) != 0)) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d215;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x2c;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915b6;\n          FUN_00069d00();\n        }\n        *(undefined4 *)((int)piVar10 + -0xc) = 0x14;\n        *(int *)((int)piVar10 + -0x10) = iVar8;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191010;\n        FUN_001e6d90();\n      }\n      *piVar4 = (int)(local_90 + -0x1717);\n      if ((int *)piVar4[2] != piVar4 + 4) {\n        *(int **)((int)piVar10 + -0x10) = (int *)piVar4[2];\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191034;\n        FUN_001e6db0();\n      }\n      *(undefined4 *)((int)piVar10 + -0xc) = 0x30;\n      *(int **)((int)piVar10 + -0x10) = piVar4;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191048;\n      FUN_001e6d90();\n      piVar4 = local_98;\n    }" { (expression_statement "*piVar4 = (int)(local_90 + -0x307b);" (assignment_expression "*piVar4 = (int)(local_90 + -0x307b)" (pointer_expression "*piVar4" * identifier) = (cast_expression "(int)(local_90 + -0x307b)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_90 + -0x307b)" ( (binary_expression "local_90 + -0x307b" identifier + number_literal) )))) ;) (expression_statement "piVar7 = (int *)piVar4[9];" (assignment_expression "piVar7 = (int *)piVar4[9]" identifier = (cast_expression "(int *)piVar4[9]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar4[9]" identifier [ number_literal ]))) ;) (if_statement "if (piVar7 != (int *)0x0) {\n        iVar8 = *piVar7;\n        *(int **)((int)piVar10 + -0x10) = piVar7;\n        pcVar3 = *(code **)(iVar8 + 4);\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x190fc9;\n        (*pcVar3)();\n      }" if (parenthesized_expression "(piVar7 != (int *)0x0)" ( (binary_expression "piVar7 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar8 = *piVar7;\n        *(int **)((int)piVar10 + -0x10) = piVar7;\n        pcVar3 = *(code **)(iVar8 + 4);\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x190fc9;\n        (*pcVar3)();\n      }" { (expression_statement "iVar8 = *piVar7;" (assignment_expression "iVar8 = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;) (expression_statement "*(int **)((int)piVar10 + -0x10) = piVar7;" (assignment_expression "*(int **)((int)piVar10 + -0x10) = piVar7" (pointer_expression "*(int **)((int)piVar10 + -0x10)" * (cast_expression "(int **)((int)piVar10 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar10 + -0x10)" ( (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar3 = *(code **)(iVar8 + 4);" (assignment_expression "pcVar3 = *(code **)(iVar8 + 4)" identifier = (pointer_expression "*(code **)(iVar8 + 4)" * (cast_expression "(code **)(iVar8 + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 4)" ( (binary_expression "iVar8 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x190fc9;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x190fc9" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0x14)" ( (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar3)();" (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( ))) ;) })) (expression_statement "iVar8 = piVar4[10];" (assignment_expression "iVar8 = piVar4[10]" identifier = (subscript_expression "piVar4[10]" identifier [ number_literal ])) ;) (if_statement "if (iVar8 != 0) {\n        if (*(int *)(iVar8 + 4) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 100;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915d4;\n          FUN_00069d00();\n        }\n        if (*(int *)(iVar8 + 8) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x65;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined1 **)((int)piVar10 + -0x14) = &LAB_001915f2;\n          FUN_00069d00();\n        }\n        if ((*(int *)(iVar8 + 0xc) != 0) || (*(int *)(iVar8 + 0x10) != 0)) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d215;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x2c;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915b6;\n          FUN_00069d00();\n        }\n        *(undefined4 *)((int)piVar10 + -0xc) = 0x14;\n        *(int *)((int)piVar10 + -0x10) = iVar8;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191010;\n        FUN_001e6d90();\n      }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n        if (*(int *)(iVar8 + 4) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 100;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915d4;\n          FUN_00069d00();\n        }\n        if (*(int *)(iVar8 + 8) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x65;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined1 **)((int)piVar10 + -0x14) = &LAB_001915f2;\n          FUN_00069d00();\n        }\n        if ((*(int *)(iVar8 + 0xc) != 0) || (*(int *)(iVar8 + 0x10) != 0)) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d215;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x2c;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915b6;\n          FUN_00069d00();\n        }\n        *(undefined4 *)((int)piVar10 + -0xc) = 0x14;\n        *(int *)((int)piVar10 + -0x10) = iVar8;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191010;\n        FUN_001e6d90();\n      }" { (if_statement "if (*(int *)(iVar8 + 4) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 100;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915d4;\n          FUN_00069d00();\n        }" if (parenthesized_expression "(*(int *)(iVar8 + 4) != 0)" ( (binary_expression "*(int *)(iVar8 + 4) != 0" (pointer_expression "*(int *)(iVar8 + 4)" * (cast_expression "(int *)(iVar8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 4)" ( (binary_expression "iVar8 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 100;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915d4;\n          FUN_00069d00();\n        }" { (expression_statement "*(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;" (assignment_expression "*(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e" (pointer_expression "*(undefined ***)((int)piVar10 + -8)" * (cast_expression "(undefined ***)((int)piVar10 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar10 + -8)" ( (binary_expression "(int)piVar10 + -8" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_90 + -0x3d22e" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar10 + -0xc) = 100;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0xc) = 100" (pointer_expression "*(undefined4 *)((int)piVar10 + -0xc)" * (cast_expression "(undefined4 *)((int)piVar10 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0xc)" ( (binary_expression "(int)piVar10 + -0xc" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;" (assignment_expression "*(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43" (pointer_expression "*(int *)((int)piVar10 + -0x10)" * (cast_expression "(int *)((int)piVar10 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0x10)" ( (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_90 + -0x10ea43" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x1915d4;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x1915d4" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0x14)" ( (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00069d00();" (call_expression "FUN_00069d00()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (*(int *)(iVar8 + 8) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x65;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined1 **)((int)piVar10 + -0x14) = &LAB_001915f2;\n          FUN_00069d00();\n        }" if (parenthesized_expression "(*(int *)(iVar8 + 8) != 0)" ( (binary_expression "*(int *)(iVar8 + 8) != 0" (pointer_expression "*(int *)(iVar8 + 8)" * (cast_expression "(int *)(iVar8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x65;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined1 **)((int)piVar10 + -0x14) = &LAB_001915f2;\n          FUN_00069d00();\n        }" { (expression_statement "*(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;" (assignment_expression "*(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e" (pointer_expression "*(undefined ***)((int)piVar10 + -8)" * (cast_expression "(undefined ***)((int)piVar10 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar10 + -8)" ( (binary_expression "(int)piVar10 + -8" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_90 + -0x3d22e" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar10 + -0xc) = 0x65;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0xc) = 0x65" (pointer_expression "*(undefined4 *)((int)piVar10 + -0xc)" * (cast_expression "(undefined4 *)((int)piVar10 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0xc)" ( (binary_expression "(int)piVar10 + -0xc" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;" (assignment_expression "*(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43" (pointer_expression "*(int *)((int)piVar10 + -0x10)" * (cast_expression "(int *)((int)piVar10 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0x10)" ( (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_90 + -0x10ea43" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined1 **)((int)piVar10 + -0x14) = &LAB_001915f2;" (assignment_expression "*(undefined1 **)((int)piVar10 + -0x14) = &LAB_001915f2" (pointer_expression "*(undefined1 **)((int)piVar10 + -0x14)" * (cast_expression "(undefined1 **)((int)piVar10 + -0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar10 + -0x14)" ( (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&LAB_001915f2" & identifier)) ;) (expression_statement "FUN_00069d00();" (call_expression "FUN_00069d00()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if ((*(int *)(iVar8 + 0xc) != 0) || (*(int *)(iVar8 + 0x10) != 0)) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d215;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x2c;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915b6;\n          FUN_00069d00();\n        }" if (parenthesized_expression "((*(int *)(iVar8 + 0xc) != 0) || (*(int *)(iVar8 + 0x10) != 0))" ( (binary_expression "(*(int *)(iVar8 + 0xc) != 0) || (*(int *)(iVar8 + 0x10) != 0)" (parenthesized_expression "(*(int *)(iVar8 + 0xc) != 0)" ( (binary_expression "*(int *)(iVar8 + 0xc) != 0" (pointer_expression "*(int *)(iVar8 + 0xc)" * (cast_expression "(int *)(iVar8 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0xc)" ( (binary_expression "iVar8 + 0xc" identifier + number_literal) )))) != number_literal) )) || (parenthesized_expression "(*(int *)(iVar8 + 0x10) != 0)" ( (binary_expression "*(int *)(iVar8 + 0x10) != 0" (pointer_expression "*(int *)(iVar8 + 0x10)" * (cast_expression "(int *)(iVar8 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x10)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d215;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x2c;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915b6;\n          FUN_00069d00();\n        }" { (expression_statement "*(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d215;" (assignment_expression "*(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d215" (pointer_expression "*(undefined ***)((int)piVar10 + -8)" * (cast_expression "(undefined ***)((int)piVar10 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar10 + -8)" ( (binary_expression "(int)piVar10 + -8" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_90 + -0x3d215" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar10 + -0xc) = 0x2c;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0xc) = 0x2c" (pointer_expression "*(undefined4 *)((int)piVar10 + -0xc)" * (cast_expression "(undefined4 *)((int)piVar10 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0xc)" ( (binary_expression "(int)piVar10 + -0xc" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;" (assignment_expression "*(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43" (pointer_expression "*(int *)((int)piVar10 + -0x10)" * (cast_expression "(int *)((int)piVar10 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0x10)" ( (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_90 + -0x10ea43" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x1915b6;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x1915b6" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0x14)" ( (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00069d00();" (call_expression "FUN_00069d00()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*(undefined4 *)((int)piVar10 + -0xc) = 0x14;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0xc) = 0x14" (pointer_expression "*(undefined4 *)((int)piVar10 + -0xc)" * (cast_expression "(undefined4 *)((int)piVar10 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0xc)" ( (binary_expression "(int)piVar10 + -0xc" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)piVar10 + -0x10) = iVar8;" (assignment_expression "*(int *)((int)piVar10 + -0x10) = iVar8" (pointer_expression "*(int *)((int)piVar10 + -0x10)" * (cast_expression "(int *)((int)piVar10 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0x10)" ( (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x191010;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x191010" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0x14)" ( (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001e6d90();" (call_expression "FUN_001e6d90()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*piVar4 = (int)(local_90 + -0x1717);" (assignment_expression "*piVar4 = (int)(local_90 + -0x1717)" (pointer_expression "*piVar4" * identifier) = (cast_expression "(int)(local_90 + -0x1717)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_90 + -0x1717)" ( (binary_expression "local_90 + -0x1717" identifier + number_literal) )))) ;) (if_statement "if ((int *)piVar4[2] != piVar4 + 4) {\n        *(int **)((int)piVar10 + -0x10) = (int *)piVar4[2];\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191034;\n        FUN_001e6db0();\n      }" if (parenthesized_expression "((int *)piVar4[2] != piVar4 + 4)" ( (binary_expression "(int *)piVar4[2] != piVar4 + 4" (cast_expression "(int *)piVar4[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar4[2]" identifier [ number_literal ])) != (binary_expression "piVar4 + 4" identifier + number_literal)) )) (compound_statement "{\n        *(int **)((int)piVar10 + -0x10) = (int *)piVar4[2];\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191034;\n        FUN_001e6db0();\n      }" { (expression_statement "*(int **)((int)piVar10 + -0x10) = (int *)piVar4[2];" (assignment_expression "*(int **)((int)piVar10 + -0x10) = (int *)piVar4[2]" (pointer_expression "*(int **)((int)piVar10 + -0x10)" * (cast_expression "(int **)((int)piVar10 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar10 + -0x10)" ( (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(int *)piVar4[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar4[2]" identifier [ number_literal ]))) ;) (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x191034;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x191034" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0x14)" ( (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*(undefined4 *)((int)piVar10 + -0xc) = 0x30;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0xc) = 0x30" (pointer_expression "*(undefined4 *)((int)piVar10 + -0xc)" * (cast_expression "(undefined4 *)((int)piVar10 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0xc)" ( (binary_expression "(int)piVar10 + -0xc" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int **)((int)piVar10 + -0x10) = piVar4;" (assignment_expression "*(int **)((int)piVar10 + -0x10) = piVar4" (pointer_expression "*(int **)((int)piVar10 + -0x10)" * (cast_expression "(int **)((int)piVar10 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar10 + -0x10)" ( (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x191048;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x191048" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0x14)" ( (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001e6d90();" (call_expression "FUN_001e6d90()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar4 = local_98;" (assignment_expression "piVar4 = local_98" identifier = identifier) ;) }) (else_clause "else {\n      *(int **)((int)piVar10 + -0x10) = piVar4;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x1913d6;\n      (*(code *)ppuVar2)();\n      piVar4 = local_98;\n    }" else (compound_statement "{\n      *(int **)((int)piVar10 + -0x10) = piVar4;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x1913d6;\n      (*(code *)ppuVar2)();\n      piVar4 = local_98;\n    }" { (expression_statement "*(int **)((int)piVar10 + -0x10) = piVar4;" (assignment_expression "*(int **)((int)piVar10 + -0x10) = piVar4" (pointer_expression "*(int **)((int)piVar10 + -0x10)" * (cast_expression "(int **)((int)piVar10 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar10 + -0x10)" ( (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x1913d6;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x1913d6" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0x14)" ( (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*(code *)ppuVar2)();" (call_expression "(*(code *)ppuVar2)()" (parenthesized_expression "(*(code *)ppuVar2)" ( (pointer_expression "*(code *)ppuVar2" * (cast_expression "(code *)ppuVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar4 = local_98;" (assignment_expression "piVar4 = local_98" identifier = identifier) ;) }))) (expression_statement "local_98 = piVar4;" (assignment_expression "local_98 = piVar4" identifier = identifier) ;) (if_statement "if (piVar4 == (int *)0x0) {\n      return 1;\n    }" if (parenthesized_expression "(piVar4 == (int *)0x0)" ( (binary_expression "piVar4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* DWARF original prototype: bool find_and_run_task(Workqueue * this, int thread_number) */\n\nbool __thiscall gold::Workqueue::find_and_run_task(Workqueue *this,int thread_number)\n\n{\n  Lock_impl *pLVar1;\n  Task *pTVar2;\n  int *piVar3;\n  undefined **ppuVar4;\n  size_type sVar5;\n  _func_int_varargs **pp_Var6;\n  _func_int_varargs *p_Var7;\n  code *pcVar8;\n  undefined4 *puVar9;\n  Task *pTVar10;\n  pointer pcVar11;\n  size_t sVar12;\n  pointer pcVar13;\n  _Alloc_hider _Var14;\n  pointer *ppcVar15;\n  pointer local_cc;\n  size_type *local_c8;\n  int local_c4;\n  int local_c0;\n  int local_bc;\n  undefined4 local_b8;\n  int local_b4;\n  pointer local_b0;\n  undefined **local_ac;\n  long *local_a8;\n  undefined **local_a4;\n  Task_locker *local_a0;\n  Timer *local_9c;\n  Task *local_98;\n  undefined **local_94;\n  undefined **local_90;\n  int local_84;\n  int local_80;\n  int local_7c;\n  Task_locker tl;\n  _Alloc_hider local_64;\n  size_type local_60;\n  size_type local_5c [4];\n  Timer timer;\n  \n  local_90 = &_GLOBAL_OFFSET_TABLE_;\n  tl.count_ = 0;\n  pLVar1 = (this->lock_).lock_;\n  (*pLVar1->_vptr_Lock_impl[2])(pLVar1);\n                    /* try { // try from 00190eb4 to 00190eb8 has its CatchHandler @ 001915f2 */\n  pTVar10 = find_runnable_or_wait(this,thread_number);\n  if (pTVar10 == (Task *)0x0) {\n    pLVar1 = (this->lock_).lock_;\n    (*pLVar1->_vptr_Lock_impl[3])(pLVar1);\n    return false;\n  }\n  local_a0 = &tl;\n  local_ac = local_90 + -0xc8b40;\n  if ((undefined **)pTVar10->_vptr_Task[3] != local_ac) {\n                    /* try { // try from 00191525 to 00191526 has its CatchHandler @ 001915f2 */\n    (*pTVar10->_vptr_Task[3])(pTVar10,local_a0);\n  }\n  ppcVar15 = &local_cc;\n  pLVar1 = (this->lock_).lock_;\n  this->running_ = this->running_ + 1;\n  (*pLVar1->_vptr_Lock_impl[3])(pLVar1);\n  local_94 = local_90 + 0xde;\n  local_a4 = local_90 + -0xc8b3c;\n  local_a8 = &timer.start_time_.wall;\n  local_9c = &timer;\n  do {\n    piVar3 = (int *)*local_94;\n    if ((piVar3[2] != 0) && ((*(byte *)(piVar3 + 5) & 1) != 0)) {\n      local_98 = (Task *)*piVar3;\n      if ((pTVar10->name_)._M_string_length == 0) {\n        ppuVar4 = (undefined **)pTVar10->_vptr_Task[5];\n        if (ppuVar4 == local_90 + -0xc8a2c) {\n          pcVar13 = pTVar10[1].name_._M_dataplus._M_p;\n          timer.start_time_.user = (long)local_a8;\n          pcVar11 = (pointer)0xffffffff;\n          if (pcVar13 != (pointer)0x0) {\n            *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;\n            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1910c6;\n            local_b0 = pcVar13;\n            sVar12 = strlen(*(char **)((int)ppcVar15 + -0x10));\n            pcVar11 = local_b0 + sVar12;\n            pcVar13 = local_b0;\n          }\n          *(undefined4 *)((int)ppcVar15 + -4) = 0;\n          *(pointer *)((int)ppcVar15 + -8) = pcVar11;\n          *(pointer *)((int)ppcVar15 + -0xc) = pcVar13;\n          *(Timer **)((int)ppcVar15 + -0x10) = local_9c;\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1910e0;\n          std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n          _M_construct<char_const*>();\n        }\n        else {\n          *(Task **)((int)ppcVar15 + -0xc) = pTVar10;\n          *(Timer **)((int)ppcVar15 + -0x10) = local_9c;\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1914bc;\n          (*(code *)ppuVar4)();\n          ppcVar15 = (pointer *)((int)ppcVar15 + -4);\n        }\n        pcVar13 = (pTVar10->name_)._M_dataplus._M_p;\n        if ((long *)timer.start_time_.user == local_a8) {\n          if (timer.start_time_.sys != 0) {\n            if (timer.start_time_.sys == 1) {\n              *pcVar13 = (char)timer.start_time_.wall;\n              pcVar13 = (pTVar10->name_)._M_dataplus._M_p;\n            }\n            else {\n              *(long *)((int)ppcVar15 + -8) = timer.start_time_.sys;\n              *(long **)((int)ppcVar15 + -0xc) = local_a8;\n              *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;\n              *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)ppcVar15 + -0x10),*(void **)((int)ppcVar15 + -0xc),\n                     *(size_t *)((int)ppcVar15 + -8));\n              pcVar13 = (pTVar10->name_)._M_dataplus._M_p;\n            }\n          }\n          (pTVar10->name_)._M_string_length = timer.start_time_.sys;\n          pcVar13[timer.start_time_.sys] = '\0';\n          sVar5 = timer.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               *)pcVar13 == &(pTVar10->name_).field_2) {\n            (pTVar10->name_)._M_dataplus._M_p = (pointer)timer.start_time_.user;\n            (pTVar10->name_)._M_string_length = timer.start_time_.sys;\n            (pTVar10->name_).field_2._M_allocated_capacity = timer.start_time_.wall;\n          }\n          else {\n            (pTVar10->name_)._M_dataplus._M_p = (pointer)timer.start_time_.user;\n            sVar5 = (pTVar10->name_).field_2._M_allocated_capacity;\n            (pTVar10->name_)._M_string_length = timer.start_time_.sys;\n            (pTVar10->name_).field_2._M_allocated_capacity = timer.start_time_.wall;\n            timer.start_time_.user = (long)pcVar13;\n            if (pcVar13 != (pointer)0x0) goto LAB_00191120;\n          }\n          timer.start_time_.user = (long)local_a8;\n          sVar5 = timer.start_time_.wall;\n        }\nLAB_00191120:\n        timer.start_time_.wall = sVar5;\n        timer.start_time_.sys = 0;\n        *(undefined1 *)timer.start_time_.user = 0;\n        if ((long *)timer.start_time_.user != local_a8) {\n          *(long *)((int)ppcVar15 + -0x10) = timer.start_time_.user;\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191144;\n          operator_delete(*(void **)((int)ppcVar15 + -0x10));\n        }\n      }\n      *(pointer *)((int)ppcVar15 + -4) = (pTVar10->name_)._M_dataplus._M_p;\n      *(int *)((int)ppcVar15 + -8) = thread_number;\n      *(int *)((int)ppcVar15 + -0xc) = (int)local_90 + -0xf4943;\n      *(Task **)((int)ppcVar15 + -0x10) = local_98;\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191165;\n      Errors::debug(*(Errors **)((int)ppcVar15 + -0x10),*(char **)((int)ppcVar15 + -0xc));\n    }\n    *(Timer **)((int)ppcVar15 + -0x10) = local_9c;\n    *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19117c;\n    Timer::Timer(*(Timer **)((int)ppcVar15 + -0x10));\n    if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {\n      *(Timer **)((int)ppcVar15 + -0x10) = local_9c;\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1911a8;\n      Timer::start(*(Timer **)((int)ppcVar15 + -0x10));\n    }\n    ppuVar4 = (undefined **)pTVar10->_vptr_Task[4];\n    if (ppuVar4 == local_a4) {\n      pp_Var6 = pTVar10[1]._vptr_Task;\n      p_Var7 = *pp_Var6;\n      *(Task **)((int)ppcVar15 + -8) = pTVar10;\n      *(Workqueue **)((int)ppcVar15 + -0xc) = this;\n      *(_func_int_varargs ***)((int)ppcVar15 + -0x10) = pp_Var6;\n      pcVar8 = *(code **)(p_Var7 + 8);\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1911ca;\n      (*pcVar8)();\n    }\n    else {\n      *(Workqueue **)((int)ppcVar15 + -0xc) = this;\n      *(Task **)((int)ppcVar15 + -0x10) = pTVar10;\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1913ff;\n      (*(code *)ppuVar4)();\n    }\n    if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {\n      *(Timer **)((int)ppcVar15 + -0xc) = local_9c;\n      *(int **)((int)ppcVar15 + -0x10) = &local_84;\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191202;\n      Timer::get_elapsed_time(*(Timer **)((int)ppcVar15 + -0xc));\n      puVar9 = (undefined4 *)*local_94;\n      if ((puVar9[2] != 0) && ((*(byte *)(puVar9 + 5) & 1) != 0)) {\n        local_b8 = *puVar9;\n        local_bc = local_7c / 1000;\n        local_98 = (Task *)((local_7c % 1000) * 1000);\n        local_c0 = local_80 / 1000;\n        local_b0 = (pointer)((local_80 % 1000) * 1000);\n        local_c4 = local_84 / 1000;\n        local_b4 = (local_84 % 1000) * 1000;\n        if ((pTVar10->name_)._M_string_length == 0) {\n          ppuVar4 = (undefined **)pTVar10->_vptr_Task[5];\n          if (ppuVar4 == local_90 + -0xc8a2c) {\n            pcVar13 = pTVar10[1].name_._M_dataplus._M_p;\n            local_c8 = local_5c;\n            pcVar11 = (pointer)0xffffffff;\n            local_64._M_p = (pointer)local_c8;\n            if (pcVar13 != (pointer)0x0) {\n              *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;\n              *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1912ff;\n              local_cc = pcVar13;\n              sVar12 = strlen(*(char **)((int)ppcVar15 + -0x10));\n              pcVar11 = local_cc + sVar12;\n              pcVar13 = local_cc;\n            }\n            *(undefined4 *)((int)ppcVar15 + -4) = 0;\n            *(pointer *)((int)ppcVar15 + -8) = pcVar11;\n            *(pointer *)((int)ppcVar15 + -0xc) = pcVar13;\n            *(_Alloc_hider **)((int)ppcVar15 + -0x10) = &local_64;\n            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191317;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char_const*>();\n          }\n          else {\n            *(Task **)((int)ppcVar15 + -0xc) = pTVar10;\n            *(_Alloc_hider **)((int)ppcVar15 + -0x10) = &local_64;\n            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191579;\n            (*(code *)ppuVar4)();\n            local_c8 = local_5c;\n            ppcVar15 = (pointer *)((int)ppcVar15 + -4);\n          }\n          _Var14._M_p = (pTVar10->name_)._M_dataplus._M_p;\n          if ((size_type *)local_64._M_p == local_c8) {\n            if (local_60 != 0) {\n              if (local_60 == 1) {\n                *_Var14._M_p = (char)local_5c[0];\n                _Var14._M_p = (pTVar10->name_)._M_dataplus._M_p;\n              }\n              else {\n                *(size_type *)((int)ppcVar15 + -8) = local_60;\n                *(size_type **)((int)ppcVar15 + -0xc) = local_c8;\n                *(pointer *)((int)ppcVar15 + -0x10) = _Var14._M_p;\n                *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19154f;\n                memcpy(*(void **)((int)ppcVar15 + -0x10),*(void **)((int)ppcVar15 + -0xc),\n                       *(size_t *)((int)ppcVar15 + -8));\n                _Var14._M_p = (pTVar10->name_)._M_dataplus._M_p;\n              }\n            }\n            (pTVar10->name_)._M_string_length = local_60;\n            *(_Var14._M_p + local_60) = '\0';\n            _Var14._M_p = local_64._M_p;\n            sVar5 = local_5c[0];\n          }\n          else {\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)_Var14._M_p == &(pTVar10->name_).field_2) {\n              (pTVar10->name_)._M_dataplus._M_p = local_64._M_p;\n              (pTVar10->name_)._M_string_length = local_60;\n              (pTVar10->name_).field_2._M_allocated_capacity = local_5c[0];\n            }\n            else {\n              (pTVar10->name_)._M_dataplus._M_p = local_64._M_p;\n              sVar5 = (pTVar10->name_).field_2._M_allocated_capacity;\n              (pTVar10->name_)._M_string_length = local_60;\n              (pTVar10->name_).field_2._M_allocated_capacity = local_5c[0];\n              local_64._M_p = _Var14._M_p;\n              if ((size_type *)_Var14._M_p != (size_type *)0x0) goto LAB_00191357;\n            }\n            local_64._M_p = (pointer)local_c8;\n            local_c8 = local_5c;\n            _Var14._M_p = (pointer)local_c8;\n            sVar5 = local_5c[0];\n          }\nLAB_00191357:\n          local_5c[0] = sVar5;\n          local_60 = 0;\n          *_Var14._M_p = '\0';\n          if ((size_type *)local_64._M_p != local_c8) {\n            *(pointer *)((int)ppcVar15 + -0x10) = local_64._M_p;\n            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19137b;\n            operator_delete(*(void **)((int)ppcVar15 + -0x10));\n          }\n        }\n        *(Task **)((int)ppcVar15 + -0xc) = local_98;\n        *(int *)((int)ppcVar15 + -0x10) = local_bc;\n        *(pointer *)((int)ppcVar15 + -0x14) = local_b0;\n        *(int *)((int)ppcVar15 + -0x18) = local_c0;\n        *(int *)((int)ppcVar15 + -0x1c) = local_b4;\n        *(int *)((int)ppcVar15 + -0x20) = local_c4;\n        *(pointer *)((int)ppcVar15 + -0x24) = (pTVar10->name_)._M_dataplus._M_p;\n        *(int *)((int)ppcVar15 + -0x28) = thread_number;\n        *(undefined ***)((int)ppcVar15 + -0x2c) = local_90 + -0x3d24b;\n        *(undefined4 *)((int)ppcVar15 + -0x30) = local_b8;\n        *(undefined4 *)((int)ppcVar15 + -0x34) = 0x1913c3;\n        Errors::debug(*(Errors **)((int)ppcVar15 + -0x30),*(char **)((int)ppcVar15 + -0x2c));\n      }\n    }\n    pLVar1 = (this->lock_).lock_;\n    pp_Var6 = pLVar1->_vptr_Lock_impl;\n    *(Lock_impl **)((int)ppcVar15 + -0x10) = pLVar1;\n    p_Var7 = pp_Var6[2];\n    *(undefined4 *)((int)ppcVar15 + -0x14) = 0x190f43;\n    (*p_Var7)();\n    this->running_ = this->running_ + -1;\n    *(Task_locker **)((int)ppcVar15 + -8) = local_a0;\n    *(Task **)((int)ppcVar15 + -0xc) = pTVar10;\n    *(Workqueue **)((int)ppcVar15 + -0x10) = this;\n                    /* try { // try from 00190f52 to 00190f56 has its CatchHandler @ 001915f9 */\n    *(undefined4 *)((int)ppcVar15 + -0x14) = 0x190f57;\n    local_98 = release_locks(*(Workqueue **)((int)ppcVar15 + -0x10),*(Task **)((int)ppcVar15 + -0xc)\n                             ,*(Task_locker **)((int)ppcVar15 + -8));\n    if (local_98 == (Task *)0x0) {\n      *(Workqueue **)((int)ppcVar15 + -0x10) = this;\n                    /* try { // try from 00191414 to 00191440 has its CatchHandler @ 001915f9 */\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191419;\n      local_98 = find_runnable(*(Workqueue **)((int)ppcVar15 + -0x10));\n      if (local_98 != (Task *)0x0) goto LAB_00190f68;\n    }\n    else {\nLAB_00190f68:\n      tl.count_ = 0;\n      ppuVar4 = (undefined **)local_98->_vptr_Task[3];\n      if (ppuVar4 != local_ac) {\n        *(Task_locker **)((int)ppcVar15 + -0xc) = local_a0;\n        *(Task **)((int)ppcVar15 + -0x10) = local_98;\n        *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191441;\n        (*(code *)ppuVar4)();\n      }\n      this->running_ = this->running_ + 1;\n    }\n    pLVar1 = (this->lock_).lock_;\n    pp_Var6 = pLVar1->_vptr_Lock_impl;\n    *(Lock_impl **)((int)ppcVar15 + -0x10) = pLVar1;\n    p_Var7 = pp_Var6[3];\n    *(undefined4 *)((int)ppcVar15 + -0x14) = 0x190f95;\n    (*p_Var7)();\n    ppuVar4 = (undefined **)pTVar10->_vptr_Task[1];\n    if (ppuVar4 == local_90 + -0xc8ab8) {\n      pTVar10->_vptr_Task = (_func_int_varargs **)(local_90 + -0x307b);\n      pp_Var6 = pTVar10[1]._vptr_Task;\n      if (pp_Var6 != (_func_int_varargs **)0x0) {\n        p_Var7 = *pp_Var6;\n        *(_func_int_varargs ***)((int)ppcVar15 + -0x10) = pp_Var6;\n        pcVar8 = *(code **)(p_Var7 + 4);\n        *(undefined4 *)((int)ppcVar15 + -0x14) = 0x190fc9;\n        (*pcVar8)();\n      }\n      pTVar2 = pTVar10[1].list_next_;\n      if (pTVar2 != (Task *)0x0) {\n        if (pTVar2->list_next_ != (Task *)0x0) {\n          *(undefined ***)((int)ppcVar15 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)ppcVar15 + -0xc) = 100;\n          *(int *)((int)ppcVar15 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1915d4;\n          do_gold_unreachable(*(char **)((int)ppcVar15 + -0x10),*(int *)((int)ppcVar15 + -0xc),\n                              *(char **)((int)ppcVar15 + -8));\n        }\n        if ((pTVar2->name_)._M_dataplus._M_p != (pointer)0x0) {\n          *(undefined ***)((int)ppcVar15 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)ppcVar15 + -0xc) = 0x65;\n          *(int *)((int)ppcVar15 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined1 **)((int)ppcVar15 + -0x14) = &LAB_001915f2;\n          do_gold_unreachable(*(char **)((int)ppcVar15 + -0x10),*(int *)((int)ppcVar15 + -0xc),\n                              *(char **)((int)ppcVar15 + -8));\n        }\n        if (((pTVar2->name_)._M_string_length != 0) ||\n           ((pTVar2->name_).field_2._M_allocated_capacity != 0)) {\n          *(undefined ***)((int)ppcVar15 + -8) = local_90 + -0x3d215;\n          *(undefined4 *)((int)ppcVar15 + -0xc) = 0x2c;\n          *(int *)((int)ppcVar15 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1915b6;\n          do_gold_unreachable(*(char **)((int)ppcVar15 + -0x10),*(int *)((int)ppcVar15 + -0xc),\n                              *(char **)((int)ppcVar15 + -8));\n        }\n        *(undefined4 *)((int)ppcVar15 + -0xc) = 0x14;\n        *(Task **)((int)ppcVar15 + -0x10) = pTVar2;\n        *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191010;\n        operator_delete(*(void **)((int)ppcVar15 + -0x10),*(uint *)((int)ppcVar15 + -0xc));\n      }\n      pTVar10->_vptr_Task = (_func_int_varargs **)(local_90 + -0x1717);\n      pcVar13 = (pTVar10->name_)._M_dataplus._M_p;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)pcVar13 != &(pTVar10->name_).field_2) {\n        *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;\n        *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191034;\n        operator_delete(*(void **)((int)ppcVar15 + -0x10));\n      }\n      *(undefined4 *)((int)ppcVar15 + -0xc) = 0x30;\n      *(Task **)((int)ppcVar15 + -0x10) = pTVar10;\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191048;\n      operator_delete(*(void **)((int)ppcVar15 + -0x10),*(uint *)((int)ppcVar15 + -0xc));\n      pTVar10 = local_98;\n    }\n    else {\n      *(Task **)((int)ppcVar15 + -0x10) = pTVar10;\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1913d6;\n      (*(code *)ppuVar4)();\n      pTVar10 = local_98;\n    }\n    local_98 = pTVar10;\n    if (pTVar10 == (Task *)0x0) {\n      return true;\n    }\n  } while( true );\n}\n\n" comment comment (function_definition "bool __thiscall gold::Workqueue::find_and_run_task(Workqueue *this,int thread_number)\n\n{\n  Lock_impl *pLVar1;\n  Task *pTVar2;\n  int *piVar3;\n  undefined **ppuVar4;\n  size_type sVar5;\n  _func_int_varargs **pp_Var6;\n  _func_int_varargs *p_Var7;\n  code *pcVar8;\n  undefined4 *puVar9;\n  Task *pTVar10;\n  pointer pcVar11;\n  size_t sVar12;\n  pointer pcVar13;\n  _Alloc_hider _Var14;\n  pointer *ppcVar15;\n  pointer local_cc;\n  size_type *local_c8;\n  int local_c4;\n  int local_c0;\n  int local_bc;\n  undefined4 local_b8;\n  int local_b4;\n  pointer local_b0;\n  undefined **local_ac;\n  long *local_a8;\n  undefined **local_a4;\n  Task_locker *local_a0;\n  Timer *local_9c;\n  Task *local_98;\n  undefined **local_94;\n  undefined **local_90;\n  int local_84;\n  int local_80;\n  int local_7c;\n  Task_locker tl;\n  _Alloc_hider local_64;\n  size_type local_60;\n  size_type local_5c [4];\n  Timer timer;\n  \n  local_90 = &_GLOBAL_OFFSET_TABLE_;\n  tl.count_ = 0;\n  pLVar1 = (this->lock_).lock_;\n  (*pLVar1->_vptr_Lock_impl[2])(pLVar1);\n                    /* try { // try from 00190eb4 to 00190eb8 has its CatchHandler @ 001915f2 */\n  pTVar10 = find_runnable_or_wait(this,thread_number);\n  if (pTVar10 == (Task *)0x0) {\n    pLVar1 = (this->lock_).lock_;\n    (*pLVar1->_vptr_Lock_impl[3])(pLVar1);\n    return false;\n  }\n  local_a0 = &tl;\n  local_ac = local_90 + -0xc8b40;\n  if ((undefined **)pTVar10->_vptr_Task[3] != local_ac) {\n                    /* try { // try from 00191525 to 00191526 has its CatchHandler @ 001915f2 */\n    (*pTVar10->_vptr_Task[3])(pTVar10,local_a0);\n  }\n  ppcVar15 = &local_cc;\n  pLVar1 = (this->lock_).lock_;\n  this->running_ = this->running_ + 1;\n  (*pLVar1->_vptr_Lock_impl[3])(pLVar1);\n  local_94 = local_90 + 0xde;\n  local_a4 = local_90 + -0xc8b3c;\n  local_a8 = &timer.start_time_.wall;\n  local_9c = &timer;\n  do {\n    piVar3 = (int *)*local_94;\n    if ((piVar3[2] != 0) && ((*(byte *)(piVar3 + 5) & 1) != 0)) {\n      local_98 = (Task *)*piVar3;\n      if ((pTVar10->name_)._M_string_length == 0) {\n        ppuVar4 = (undefined **)pTVar10->_vptr_Task[5];\n        if (ppuVar4 == local_90 + -0xc8a2c) {\n          pcVar13 = pTVar10[1].name_._M_dataplus._M_p;\n          timer.start_time_.user = (long)local_a8;\n          pcVar11 = (pointer)0xffffffff;\n          if (pcVar13 != (pointer)0x0) {\n            *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;\n            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1910c6;\n            local_b0 = pcVar13;\n            sVar12 = strlen(*(char **)((int)ppcVar15 + -0x10));\n            pcVar11 = local_b0 + sVar12;\n            pcVar13 = local_b0;\n          }\n          *(undefined4 *)((int)ppcVar15 + -4) = 0;\n          *(pointer *)((int)ppcVar15 + -8) = pcVar11;\n          *(pointer *)((int)ppcVar15 + -0xc) = pcVar13;\n          *(Timer **)((int)ppcVar15 + -0x10) = local_9c;\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1910e0;\n          std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n          _M_construct<char_const*>();\n        }\n        else {\n          *(Task **)((int)ppcVar15 + -0xc) = pTVar10;\n          *(Timer **)((int)ppcVar15 + -0x10) = local_9c;\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1914bc;\n          (*(code *)ppuVar4)();\n          ppcVar15 = (pointer *)((int)ppcVar15 + -4);\n        }\n        pcVar13 = (pTVar10->name_)._M_dataplus._M_p;\n        if ((long *)timer.start_time_.user == local_a8) {\n          if (timer.start_time_.sys != 0) {\n            if (timer.start_time_.sys == 1) {\n              *pcVar13 = (char)timer.start_time_.wall;\n              pcVar13 = (pTVar10->name_)._M_dataplus._M_p;\n            }\n            else {\n              *(long *)((int)ppcVar15 + -8) = timer.start_time_.sys;\n              *(long **)((int)ppcVar15 + -0xc) = local_a8;\n              *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;\n              *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)ppcVar15 + -0x10),*(void **)((int)ppcVar15 + -0xc),\n                     *(size_t *)((int)ppcVar15 + -8));\n              pcVar13 = (pTVar10->name_)._M_dataplus._M_p;\n            }\n          }\n          (pTVar10->name_)._M_string_length = timer.start_time_.sys;\n          pcVar13[timer.start_time_.sys] = '\0';\n          sVar5 = timer.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               *)pcVar13 == &(pTVar10->name_).field_2) {\n            (pTVar10->name_)._M_dataplus._M_p = (pointer)timer.start_time_.user;\n            (pTVar10->name_)._M_string_length = timer.start_time_.sys;\n            (pTVar10->name_).field_2._M_allocated_capacity = timer.start_time_.wall;\n          }\n          else {\n            (pTVar10->name_)._M_dataplus._M_p = (pointer)timer.start_time_.user;\n            sVar5 = (pTVar10->name_).field_2._M_allocated_capacity;\n            (pTVar10->name_)._M_string_length = timer.start_time_.sys;\n            (pTVar10->name_).field_2._M_allocated_capacity = timer.start_time_.wall;\n            timer.start_time_.user = (long)pcVar13;\n            if (pcVar13 != (pointer)0x0) goto LAB_00191120;\n          }\n          timer.start_time_.user = (long)local_a8;\n          sVar5 = timer.start_time_.wall;\n        }\nLAB_00191120:\n        timer.start_time_.wall = sVar5;\n        timer.start_time_.sys = 0;\n        *(undefined1 *)timer.start_time_.user = 0;\n        if ((long *)timer.start_time_.user != local_a8) {\n          *(long *)((int)ppcVar15 + -0x10) = timer.start_time_.user;\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191144;\n          operator_delete(*(void **)((int)ppcVar15 + -0x10));\n        }\n      }\n      *(pointer *)((int)ppcVar15 + -4) = (pTVar10->name_)._M_dataplus._M_p;\n      *(int *)((int)ppcVar15 + -8) = thread_number;\n      *(int *)((int)ppcVar15 + -0xc) = (int)local_90 + -0xf4943;\n      *(Task **)((int)ppcVar15 + -0x10) = local_98;\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191165;\n      Errors::debug(*(Errors **)((int)ppcVar15 + -0x10),*(char **)((int)ppcVar15 + -0xc));\n    }\n    *(Timer **)((int)ppcVar15 + -0x10) = local_9c;\n    *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19117c;\n    Timer::Timer(*(Timer **)((int)ppcVar15 + -0x10));\n    if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {\n      *(Timer **)((int)ppcVar15 + -0x10) = local_9c;\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1911a8;\n      Timer::start(*(Timer **)((int)ppcVar15 + -0x10));\n    }\n    ppuVar4 = (undefined **)pTVar10->_vptr_Task[4];\n    if (ppuVar4 == local_a4) {\n      pp_Var6 = pTVar10[1]._vptr_Task;\n      p_Var7 = *pp_Var6;\n      *(Task **)((int)ppcVar15 + -8) = pTVar10;\n      *(Workqueue **)((int)ppcVar15 + -0xc) = this;\n      *(_func_int_varargs ***)((int)ppcVar15 + -0x10) = pp_Var6;\n      pcVar8 = *(code **)(p_Var7 + 8);\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1911ca;\n      (*pcVar8)();\n    }\n    else {\n      *(Workqueue **)((int)ppcVar15 + -0xc) = this;\n      *(Task **)((int)ppcVar15 + -0x10) = pTVar10;\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1913ff;\n      (*(code *)ppuVar4)();\n    }\n    if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {\n      *(Timer **)((int)ppcVar15 + -0xc) = local_9c;\n      *(int **)((int)ppcVar15 + -0x10) = &local_84;\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191202;\n      Timer::get_elapsed_time(*(Timer **)((int)ppcVar15 + -0xc));\n      puVar9 = (undefined4 *)*local_94;\n      if ((puVar9[2] != 0) && ((*(byte *)(puVar9 + 5) & 1) != 0)) {\n        local_b8 = *puVar9;\n        local_bc = local_7c / 1000;\n        local_98 = (Task *)((local_7c % 1000) * 1000);\n        local_c0 = local_80 / 1000;\n        local_b0 = (pointer)((local_80 % 1000) * 1000);\n        local_c4 = local_84 / 1000;\n        local_b4 = (local_84 % 1000) * 1000;\n        if ((pTVar10->name_)._M_string_length == 0) {\n          ppuVar4 = (undefined **)pTVar10->_vptr_Task[5];\n          if (ppuVar4 == local_90 + -0xc8a2c) {\n            pcVar13 = pTVar10[1].name_._M_dataplus._M_p;\n            local_c8 = local_5c;\n            pcVar11 = (pointer)0xffffffff;\n            local_64._M_p = (pointer)local_c8;\n            if (pcVar13 != (pointer)0x0) {\n              *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;\n              *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1912ff;\n              local_cc = pcVar13;\n              sVar12 = strlen(*(char **)((int)ppcVar15 + -0x10));\n              pcVar11 = local_cc + sVar12;\n              pcVar13 = local_cc;\n            }\n            *(undefined4 *)((int)ppcVar15 + -4) = 0;\n            *(pointer *)((int)ppcVar15 + -8) = pcVar11;\n            *(pointer *)((int)ppcVar15 + -0xc) = pcVar13;\n            *(_Alloc_hider **)((int)ppcVar15 + -0x10) = &local_64;\n            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191317;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char_const*>();\n          }\n          else {\n            *(Task **)((int)ppcVar15 + -0xc) = pTVar10;\n            *(_Alloc_hider **)((int)ppcVar15 + -0x10) = &local_64;\n            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191579;\n            (*(code *)ppuVar4)();\n            local_c8 = local_5c;\n            ppcVar15 = (pointer *)((int)ppcVar15 + -4);\n          }\n          _Var14._M_p = (pTVar10->name_)._M_dataplus._M_p;\n          if ((size_type *)local_64._M_p == local_c8) {\n            if (local_60 != 0) {\n              if (local_60 == 1) {\n                *_Var14._M_p = (char)local_5c[0];\n                _Var14._M_p = (pTVar10->name_)._M_dataplus._M_p;\n              }\n              else {\n                *(size_type *)((int)ppcVar15 + -8) = local_60;\n                *(size_type **)((int)ppcVar15 + -0xc) = local_c8;\n                *(pointer *)((int)ppcVar15 + -0x10) = _Var14._M_p;\n                *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19154f;\n                memcpy(*(void **)((int)ppcVar15 + -0x10),*(void **)((int)ppcVar15 + -0xc),\n                       *(size_t *)((int)ppcVar15 + -8));\n                _Var14._M_p = (pTVar10->name_)._M_dataplus._M_p;\n              }\n            }\n            (pTVar10->name_)._M_string_length = local_60;\n            *(_Var14._M_p + local_60) = '\0';\n            _Var14._M_p = local_64._M_p;\n            sVar5 = local_5c[0];\n          }\n          else {\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)_Var14._M_p == &(pTVar10->name_).field_2) {\n              (pTVar10->name_)._M_dataplus._M_p = local_64._M_p;\n              (pTVar10->name_)._M_string_length = local_60;\n              (pTVar10->name_).field_2._M_allocated_capacity = local_5c[0];\n            }\n            else {\n              (pTVar10->name_)._M_dataplus._M_p = local_64._M_p;\n              sVar5 = (pTVar10->name_).field_2._M_allocated_capacity;\n              (pTVar10->name_)._M_string_length = local_60;\n              (pTVar10->name_).field_2._M_allocated_capacity = local_5c[0];\n              local_64._M_p = _Var14._M_p;\n              if ((size_type *)_Var14._M_p != (size_type *)0x0) goto LAB_00191357;\n            }\n            local_64._M_p = (pointer)local_c8;\n            local_c8 = local_5c;\n            _Var14._M_p = (pointer)local_c8;\n            sVar5 = local_5c[0];\n          }\nLAB_00191357:\n          local_5c[0] = sVar5;\n          local_60 = 0;\n          *_Var14._M_p = '\0';\n          if ((size_type *)local_64._M_p != local_c8) {\n            *(pointer *)((int)ppcVar15 + -0x10) = local_64._M_p;\n            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19137b;\n            operator_delete(*(void **)((int)ppcVar15 + -0x10));\n          }\n        }\n        *(Task **)((int)ppcVar15 + -0xc) = local_98;\n        *(int *)((int)ppcVar15 + -0x10) = local_bc;\n        *(pointer *)((int)ppcVar15 + -0x14) = local_b0;\n        *(int *)((int)ppcVar15 + -0x18) = local_c0;\n        *(int *)((int)ppcVar15 + -0x1c) = local_b4;\n        *(int *)((int)ppcVar15 + -0x20) = local_c4;\n        *(pointer *)((int)ppcVar15 + -0x24) = (pTVar10->name_)._M_dataplus._M_p;\n        *(int *)((int)ppcVar15 + -0x28) = thread_number;\n        *(undefined ***)((int)ppcVar15 + -0x2c) = local_90 + -0x3d24b;\n        *(undefined4 *)((int)ppcVar15 + -0x30) = local_b8;\n        *(undefined4 *)((int)ppcVar15 + -0x34) = 0x1913c3;\n        Errors::debug(*(Errors **)((int)ppcVar15 + -0x30),*(char **)((int)ppcVar15 + -0x2c));\n      }\n    }\n    pLVar1 = (this->lock_).lock_;\n    pp_Var6 = pLVar1->_vptr_Lock_impl;\n    *(Lock_impl **)((int)ppcVar15 + -0x10) = pLVar1;\n    p_Var7 = pp_Var6[2];\n    *(undefined4 *)((int)ppcVar15 + -0x14) = 0x190f43;\n    (*p_Var7)();\n    this->running_ = this->running_ + -1;\n    *(Task_locker **)((int)ppcVar15 + -8) = local_a0;\n    *(Task **)((int)ppcVar15 + -0xc) = pTVar10;\n    *(Workqueue **)((int)ppcVar15 + -0x10) = this;\n                    /* try { // try from 00190f52 to 00190f56 has its CatchHandler @ 001915f9 */\n    *(undefined4 *)((int)ppcVar15 + -0x14) = 0x190f57;\n    local_98 = release_locks(*(Workqueue **)((int)ppcVar15 + -0x10),*(Task **)((int)ppcVar15 + -0xc)\n                             ,*(Task_locker **)((int)ppcVar15 + -8));\n    if (local_98 == (Task *)0x0) {\n      *(Workqueue **)((int)ppcVar15 + -0x10) = this;\n                    /* try { // try from 00191414 to 00191440 has its CatchHandler @ 001915f9 */\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191419;\n      local_98 = find_runnable(*(Workqueue **)((int)ppcVar15 + -0x10));\n      if (local_98 != (Task *)0x0) goto LAB_00190f68;\n    }\n    else {\nLAB_00190f68:\n      tl.count_ = 0;\n      ppuVar4 = (undefined **)local_98->_vptr_Task[3];\n      if (ppuVar4 != local_ac) {\n        *(Task_locker **)((int)ppcVar15 + -0xc) = local_a0;\n        *(Task **)((int)ppcVar15 + -0x10) = local_98;\n        *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191441;\n        (*(code *)ppuVar4)();\n      }\n      this->running_ = this->running_ + 1;\n    }\n    pLVar1 = (this->lock_).lock_;\n    pp_Var6 = pLVar1->_vptr_Lock_impl;\n    *(Lock_impl **)((int)ppcVar15 + -0x10) = pLVar1;\n    p_Var7 = pp_Var6[3];\n    *(undefined4 *)((int)ppcVar15 + -0x14) = 0x190f95;\n    (*p_Var7)();\n    ppuVar4 = (undefined **)pTVar10->_vptr_Task[1];\n    if (ppuVar4 == local_90 + -0xc8ab8) {\n      pTVar10->_vptr_Task = (_func_int_varargs **)(local_90 + -0x307b);\n      pp_Var6 = pTVar10[1]._vptr_Task;\n      if (pp_Var6 != (_func_int_varargs **)0x0) {\n        p_Var7 = *pp_Var6;\n        *(_func_int_varargs ***)((int)ppcVar15 + -0x10) = pp_Var6;\n        pcVar8 = *(code **)(p_Var7 + 4);\n        *(undefined4 *)((int)ppcVar15 + -0x14) = 0x190fc9;\n        (*pcVar8)();\n      }\n      pTVar2 = pTVar10[1].list_next_;\n      if (pTVar2 != (Task *)0x0) {\n        if (pTVar2->list_next_ != (Task *)0x0) {\n          *(undefined ***)((int)ppcVar15 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)ppcVar15 + -0xc) = 100;\n          *(int *)((int)ppcVar15 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1915d4;\n          do_gold_unreachable(*(char **)((int)ppcVar15 + -0x10),*(int *)((int)ppcVar15 + -0xc),\n                              *(char **)((int)ppcVar15 + -8));\n        }\n        if ((pTVar2->name_)._M_dataplus._M_p != (pointer)0x0) {\n          *(undefined ***)((int)ppcVar15 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)ppcVar15 + -0xc) = 0x65;\n          *(int *)((int)ppcVar15 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined1 **)((int)ppcVar15 + -0x14) = &LAB_001915f2;\n          do_gold_unreachable(*(char **)((int)ppcVar15 + -0x10),*(int *)((int)ppcVar15 + -0xc),\n                              *(char **)((int)ppcVar15 + -8));\n        }\n        if (((pTVar2->name_)._M_string_length != 0) ||\n           ((pTVar2->name_).field_2._M_allocated_capacity != 0)) {\n          *(undefined ***)((int)ppcVar15 + -8) = local_90 + -0x3d215;\n          *(undefined4 *)((int)ppcVar15 + -0xc) = 0x2c;\n          *(int *)((int)ppcVar15 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1915b6;\n          do_gold_unreachable(*(char **)((int)ppcVar15 + -0x10),*(int *)((int)ppcVar15 + -0xc),\n                              *(char **)((int)ppcVar15 + -8));\n        }\n        *(undefined4 *)((int)ppcVar15 + -0xc) = 0x14;\n        *(Task **)((int)ppcVar15 + -0x10) = pTVar2;\n        *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191010;\n        operator_delete(*(void **)((int)ppcVar15 + -0x10),*(uint *)((int)ppcVar15 + -0xc));\n      }\n      pTVar10->_vptr_Task = (_func_int_varargs **)(local_90 + -0x1717);\n      pcVar13 = (pTVar10->name_)._M_dataplus._M_p;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)pcVar13 != &(pTVar10->name_).field_2) {\n        *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;\n        *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191034;\n        operator_delete(*(void **)((int)ppcVar15 + -0x10));\n      }\n      *(undefined4 *)((int)ppcVar15 + -0xc) = 0x30;\n      *(Task **)((int)ppcVar15 + -0x10) = pTVar10;\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191048;\n      operator_delete(*(void **)((int)ppcVar15 + -0x10),*(uint *)((int)ppcVar15 + -0xc));\n      pTVar10 = local_98;\n    }\n    else {\n      *(Task **)((int)ppcVar15 + -0x10) = pTVar10;\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1913d6;\n      (*(code *)ppuVar4)();\n      pTVar10 = local_98;\n    }\n    local_98 = pTVar10;\n    if (pTVar10 == (Task *)0x0) {\n      return true;\n    }\n  } while( true );\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Workqueue::" identifier : : identifier : :) (function_declarator "find_and_run_task(Workqueue *this,int thread_number)" identifier (parameter_list "(Workqueue *this,int thread_number)" ( (parameter_declaration "Workqueue *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "int thread_number" primitive_type identifier) ))) (compound_statement "{\n  Lock_impl *pLVar1;\n  Task *pTVar2;\n  int *piVar3;\n  undefined **ppuVar4;\n  size_type sVar5;\n  _func_int_varargs **pp_Var6;\n  _func_int_varargs *p_Var7;\n  code *pcVar8;\n  undefined4 *puVar9;\n  Task *pTVar10;\n  pointer pcVar11;\n  size_t sVar12;\n  pointer pcVar13;\n  _Alloc_hider _Var14;\n  pointer *ppcVar15;\n  pointer local_cc;\n  size_type *local_c8;\n  int local_c4;\n  int local_c0;\n  int local_bc;\n  undefined4 local_b8;\n  int local_b4;\n  pointer local_b0;\n  undefined **local_ac;\n  long *local_a8;\n  undefined **local_a4;\n  Task_locker *local_a0;\n  Timer *local_9c;\n  Task *local_98;\n  undefined **local_94;\n  undefined **local_90;\n  int local_84;\n  int local_80;\n  int local_7c;\n  Task_locker tl;\n  _Alloc_hider local_64;\n  size_type local_60;\n  size_type local_5c [4];\n  Timer timer;\n  \n  local_90 = &_GLOBAL_OFFSET_TABLE_;\n  tl.count_ = 0;\n  pLVar1 = (this->lock_).lock_;\n  (*pLVar1->_vptr_Lock_impl[2])(pLVar1);\n                    /* try { // try from 00190eb4 to 00190eb8 has its CatchHandler @ 001915f2 */\n  pTVar10 = find_runnable_or_wait(this,thread_number);\n  if (pTVar10 == (Task *)0x0) {\n    pLVar1 = (this->lock_).lock_;\n    (*pLVar1->_vptr_Lock_impl[3])(pLVar1);\n    return false;\n  }\n  local_a0 = &tl;\n  local_ac = local_90 + -0xc8b40;\n  if ((undefined **)pTVar10->_vptr_Task[3] != local_ac) {\n                    /* try { // try from 00191525 to 00191526 has its CatchHandler @ 001915f2 */\n    (*pTVar10->_vptr_Task[3])(pTVar10,local_a0);\n  }\n  ppcVar15 = &local_cc;\n  pLVar1 = (this->lock_).lock_;\n  this->running_ = this->running_ + 1;\n  (*pLVar1->_vptr_Lock_impl[3])(pLVar1);\n  local_94 = local_90 + 0xde;\n  local_a4 = local_90 + -0xc8b3c;\n  local_a8 = &timer.start_time_.wall;\n  local_9c = &timer;\n  do {\n    piVar3 = (int *)*local_94;\n    if ((piVar3[2] != 0) && ((*(byte *)(piVar3 + 5) & 1) != 0)) {\n      local_98 = (Task *)*piVar3;\n      if ((pTVar10->name_)._M_string_length == 0) {\n        ppuVar4 = (undefined **)pTVar10->_vptr_Task[5];\n        if (ppuVar4 == local_90 + -0xc8a2c) {\n          pcVar13 = pTVar10[1].name_._M_dataplus._M_p;\n          timer.start_time_.user = (long)local_a8;\n          pcVar11 = (pointer)0xffffffff;\n          if (pcVar13 != (pointer)0x0) {\n            *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;\n            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1910c6;\n            local_b0 = pcVar13;\n            sVar12 = strlen(*(char **)((int)ppcVar15 + -0x10));\n            pcVar11 = local_b0 + sVar12;\n            pcVar13 = local_b0;\n          }\n          *(undefined4 *)((int)ppcVar15 + -4) = 0;\n          *(pointer *)((int)ppcVar15 + -8) = pcVar11;\n          *(pointer *)((int)ppcVar15 + -0xc) = pcVar13;\n          *(Timer **)((int)ppcVar15 + -0x10) = local_9c;\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1910e0;\n          std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n          _M_construct<char_const*>();\n        }\n        else {\n          *(Task **)((int)ppcVar15 + -0xc) = pTVar10;\n          *(Timer **)((int)ppcVar15 + -0x10) = local_9c;\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1914bc;\n          (*(code *)ppuVar4)();\n          ppcVar15 = (pointer *)((int)ppcVar15 + -4);\n        }\n        pcVar13 = (pTVar10->name_)._M_dataplus._M_p;\n        if ((long *)timer.start_time_.user == local_a8) {\n          if (timer.start_time_.sys != 0) {\n            if (timer.start_time_.sys == 1) {\n              *pcVar13 = (char)timer.start_time_.wall;\n              pcVar13 = (pTVar10->name_)._M_dataplus._M_p;\n            }\n            else {\n              *(long *)((int)ppcVar15 + -8) = timer.start_time_.sys;\n              *(long **)((int)ppcVar15 + -0xc) = local_a8;\n              *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;\n              *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)ppcVar15 + -0x10),*(void **)((int)ppcVar15 + -0xc),\n                     *(size_t *)((int)ppcVar15 + -8));\n              pcVar13 = (pTVar10->name_)._M_dataplus._M_p;\n            }\n          }\n          (pTVar10->name_)._M_string_length = timer.start_time_.sys;\n          pcVar13[timer.start_time_.sys] = '\0';\n          sVar5 = timer.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               *)pcVar13 == &(pTVar10->name_).field_2) {\n            (pTVar10->name_)._M_dataplus._M_p = (pointer)timer.start_time_.user;\n            (pTVar10->name_)._M_string_length = timer.start_time_.sys;\n            (pTVar10->name_).field_2._M_allocated_capacity = timer.start_time_.wall;\n          }\n          else {\n            (pTVar10->name_)._M_dataplus._M_p = (pointer)timer.start_time_.user;\n            sVar5 = (pTVar10->name_).field_2._M_allocated_capacity;\n            (pTVar10->name_)._M_string_length = timer.start_time_.sys;\n            (pTVar10->name_).field_2._M_allocated_capacity = timer.start_time_.wall;\n            timer.start_time_.user = (long)pcVar13;\n            if (pcVar13 != (pointer)0x0) goto LAB_00191120;\n          }\n          timer.start_time_.user = (long)local_a8;\n          sVar5 = timer.start_time_.wall;\n        }\nLAB_00191120:\n        timer.start_time_.wall = sVar5;\n        timer.start_time_.sys = 0;\n        *(undefined1 *)timer.start_time_.user = 0;\n        if ((long *)timer.start_time_.user != local_a8) {\n          *(long *)((int)ppcVar15 + -0x10) = timer.start_time_.user;\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191144;\n          operator_delete(*(void **)((int)ppcVar15 + -0x10));\n        }\n      }\n      *(pointer *)((int)ppcVar15 + -4) = (pTVar10->name_)._M_dataplus._M_p;\n      *(int *)((int)ppcVar15 + -8) = thread_number;\n      *(int *)((int)ppcVar15 + -0xc) = (int)local_90 + -0xf4943;\n      *(Task **)((int)ppcVar15 + -0x10) = local_98;\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191165;\n      Errors::debug(*(Errors **)((int)ppcVar15 + -0x10),*(char **)((int)ppcVar15 + -0xc));\n    }\n    *(Timer **)((int)ppcVar15 + -0x10) = local_9c;\n    *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19117c;\n    Timer::Timer(*(Timer **)((int)ppcVar15 + -0x10));\n    if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {\n      *(Timer **)((int)ppcVar15 + -0x10) = local_9c;\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1911a8;\n      Timer::start(*(Timer **)((int)ppcVar15 + -0x10));\n    }\n    ppuVar4 = (undefined **)pTVar10->_vptr_Task[4];\n    if (ppuVar4 == local_a4) {\n      pp_Var6 = pTVar10[1]._vptr_Task;\n      p_Var7 = *pp_Var6;\n      *(Task **)((int)ppcVar15 + -8) = pTVar10;\n      *(Workqueue **)((int)ppcVar15 + -0xc) = this;\n      *(_func_int_varargs ***)((int)ppcVar15 + -0x10) = pp_Var6;\n      pcVar8 = *(code **)(p_Var7 + 8);\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1911ca;\n      (*pcVar8)();\n    }\n    else {\n      *(Workqueue **)((int)ppcVar15 + -0xc) = this;\n      *(Task **)((int)ppcVar15 + -0x10) = pTVar10;\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1913ff;\n      (*(code *)ppuVar4)();\n    }\n    if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {\n      *(Timer **)((int)ppcVar15 + -0xc) = local_9c;\n      *(int **)((int)ppcVar15 + -0x10) = &local_84;\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191202;\n      Timer::get_elapsed_time(*(Timer **)((int)ppcVar15 + -0xc));\n      puVar9 = (undefined4 *)*local_94;\n      if ((puVar9[2] != 0) && ((*(byte *)(puVar9 + 5) & 1) != 0)) {\n        local_b8 = *puVar9;\n        local_bc = local_7c / 1000;\n        local_98 = (Task *)((local_7c % 1000) * 1000);\n        local_c0 = local_80 / 1000;\n        local_b0 = (pointer)((local_80 % 1000) * 1000);\n        local_c4 = local_84 / 1000;\n        local_b4 = (local_84 % 1000) * 1000;\n        if ((pTVar10->name_)._M_string_length == 0) {\n          ppuVar4 = (undefined **)pTVar10->_vptr_Task[5];\n          if (ppuVar4 == local_90 + -0xc8a2c) {\n            pcVar13 = pTVar10[1].name_._M_dataplus._M_p;\n            local_c8 = local_5c;\n            pcVar11 = (pointer)0xffffffff;\n            local_64._M_p = (pointer)local_c8;\n            if (pcVar13 != (pointer)0x0) {\n              *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;\n              *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1912ff;\n              local_cc = pcVar13;\n              sVar12 = strlen(*(char **)((int)ppcVar15 + -0x10));\n              pcVar11 = local_cc + sVar12;\n              pcVar13 = local_cc;\n            }\n            *(undefined4 *)((int)ppcVar15 + -4) = 0;\n            *(pointer *)((int)ppcVar15 + -8) = pcVar11;\n            *(pointer *)((int)ppcVar15 + -0xc) = pcVar13;\n            *(_Alloc_hider **)((int)ppcVar15 + -0x10) = &local_64;\n            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191317;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char_const*>();\n          }\n          else {\n            *(Task **)((int)ppcVar15 + -0xc) = pTVar10;\n            *(_Alloc_hider **)((int)ppcVar15 + -0x10) = &local_64;\n            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191579;\n            (*(code *)ppuVar4)();\n            local_c8 = local_5c;\n            ppcVar15 = (pointer *)((int)ppcVar15 + -4);\n          }\n          _Var14._M_p = (pTVar10->name_)._M_dataplus._M_p;\n          if ((size_type *)local_64._M_p == local_c8) {\n            if (local_60 != 0) {\n              if (local_60 == 1) {\n                *_Var14._M_p = (char)local_5c[0];\n                _Var14._M_p = (pTVar10->name_)._M_dataplus._M_p;\n              }\n              else {\n                *(size_type *)((int)ppcVar15 + -8) = local_60;\n                *(size_type **)((int)ppcVar15 + -0xc) = local_c8;\n                *(pointer *)((int)ppcVar15 + -0x10) = _Var14._M_p;\n                *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19154f;\n                memcpy(*(void **)((int)ppcVar15 + -0x10),*(void **)((int)ppcVar15 + -0xc),\n                       *(size_t *)((int)ppcVar15 + -8));\n                _Var14._M_p = (pTVar10->name_)._M_dataplus._M_p;\n              }\n            }\n            (pTVar10->name_)._M_string_length = local_60;\n            *(_Var14._M_p + local_60) = '\0';\n            _Var14._M_p = local_64._M_p;\n            sVar5 = local_5c[0];\n          }\n          else {\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)_Var14._M_p == &(pTVar10->name_).field_2) {\n              (pTVar10->name_)._M_dataplus._M_p = local_64._M_p;\n              (pTVar10->name_)._M_string_length = local_60;\n              (pTVar10->name_).field_2._M_allocated_capacity = local_5c[0];\n            }\n            else {\n              (pTVar10->name_)._M_dataplus._M_p = local_64._M_p;\n              sVar5 = (pTVar10->name_).field_2._M_allocated_capacity;\n              (pTVar10->name_)._M_string_length = local_60;\n              (pTVar10->name_).field_2._M_allocated_capacity = local_5c[0];\n              local_64._M_p = _Var14._M_p;\n              if ((size_type *)_Var14._M_p != (size_type *)0x0) goto LAB_00191357;\n            }\n            local_64._M_p = (pointer)local_c8;\n            local_c8 = local_5c;\n            _Var14._M_p = (pointer)local_c8;\n            sVar5 = local_5c[0];\n          }\nLAB_00191357:\n          local_5c[0] = sVar5;\n          local_60 = 0;\n          *_Var14._M_p = '\0';\n          if ((size_type *)local_64._M_p != local_c8) {\n            *(pointer *)((int)ppcVar15 + -0x10) = local_64._M_p;\n            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19137b;\n            operator_delete(*(void **)((int)ppcVar15 + -0x10));\n          }\n        }\n        *(Task **)((int)ppcVar15 + -0xc) = local_98;\n        *(int *)((int)ppcVar15 + -0x10) = local_bc;\n        *(pointer *)((int)ppcVar15 + -0x14) = local_b0;\n        *(int *)((int)ppcVar15 + -0x18) = local_c0;\n        *(int *)((int)ppcVar15 + -0x1c) = local_b4;\n        *(int *)((int)ppcVar15 + -0x20) = local_c4;\n        *(pointer *)((int)ppcVar15 + -0x24) = (pTVar10->name_)._M_dataplus._M_p;\n        *(int *)((int)ppcVar15 + -0x28) = thread_number;\n        *(undefined ***)((int)ppcVar15 + -0x2c) = local_90 + -0x3d24b;\n        *(undefined4 *)((int)ppcVar15 + -0x30) = local_b8;\n        *(undefined4 *)((int)ppcVar15 + -0x34) = 0x1913c3;\n        Errors::debug(*(Errors **)((int)ppcVar15 + -0x30),*(char **)((int)ppcVar15 + -0x2c));\n      }\n    }\n    pLVar1 = (this->lock_).lock_;\n    pp_Var6 = pLVar1->_vptr_Lock_impl;\n    *(Lock_impl **)((int)ppcVar15 + -0x10) = pLVar1;\n    p_Var7 = pp_Var6[2];\n    *(undefined4 *)((int)ppcVar15 + -0x14) = 0x190f43;\n    (*p_Var7)();\n    this->running_ = this->running_ + -1;\n    *(Task_locker **)((int)ppcVar15 + -8) = local_a0;\n    *(Task **)((int)ppcVar15 + -0xc) = pTVar10;\n    *(Workqueue **)((int)ppcVar15 + -0x10) = this;\n                    /* try { // try from 00190f52 to 00190f56 has its CatchHandler @ 001915f9 */\n    *(undefined4 *)((int)ppcVar15 + -0x14) = 0x190f57;\n    local_98 = release_locks(*(Workqueue **)((int)ppcVar15 + -0x10),*(Task **)((int)ppcVar15 + -0xc)\n                             ,*(Task_locker **)((int)ppcVar15 + -8));\n    if (local_98 == (Task *)0x0) {\n      *(Workqueue **)((int)ppcVar15 + -0x10) = this;\n                    /* try { // try from 00191414 to 00191440 has its CatchHandler @ 001915f9 */\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191419;\n      local_98 = find_runnable(*(Workqueue **)((int)ppcVar15 + -0x10));\n      if (local_98 != (Task *)0x0) goto LAB_00190f68;\n    }\n    else {\nLAB_00190f68:\n      tl.count_ = 0;\n      ppuVar4 = (undefined **)local_98->_vptr_Task[3];\n      if (ppuVar4 != local_ac) {\n        *(Task_locker **)((int)ppcVar15 + -0xc) = local_a0;\n        *(Task **)((int)ppcVar15 + -0x10) = local_98;\n        *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191441;\n        (*(code *)ppuVar4)();\n      }\n      this->running_ = this->running_ + 1;\n    }\n    pLVar1 = (this->lock_).lock_;\n    pp_Var6 = pLVar1->_vptr_Lock_impl;\n    *(Lock_impl **)((int)ppcVar15 + -0x10) = pLVar1;\n    p_Var7 = pp_Var6[3];\n    *(undefined4 *)((int)ppcVar15 + -0x14) = 0x190f95;\n    (*p_Var7)();\n    ppuVar4 = (undefined **)pTVar10->_vptr_Task[1];\n    if (ppuVar4 == local_90 + -0xc8ab8) {\n      pTVar10->_vptr_Task = (_func_int_varargs **)(local_90 + -0x307b);\n      pp_Var6 = pTVar10[1]._vptr_Task;\n      if (pp_Var6 != (_func_int_varargs **)0x0) {\n        p_Var7 = *pp_Var6;\n        *(_func_int_varargs ***)((int)ppcVar15 + -0x10) = pp_Var6;\n        pcVar8 = *(code **)(p_Var7 + 4);\n        *(undefined4 *)((int)ppcVar15 + -0x14) = 0x190fc9;\n        (*pcVar8)();\n      }\n      pTVar2 = pTVar10[1].list_next_;\n      if (pTVar2 != (Task *)0x0) {\n        if (pTVar2->list_next_ != (Task *)0x0) {\n          *(undefined ***)((int)ppcVar15 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)ppcVar15 + -0xc) = 100;\n          *(int *)((int)ppcVar15 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1915d4;\n          do_gold_unreachable(*(char **)((int)ppcVar15 + -0x10),*(int *)((int)ppcVar15 + -0xc),\n                              *(char **)((int)ppcVar15 + -8));\n        }\n        if ((pTVar2->name_)._M_dataplus._M_p != (pointer)0x0) {\n          *(undefined ***)((int)ppcVar15 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)ppcVar15 + -0xc) = 0x65;\n          *(int *)((int)ppcVar15 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined1 **)((int)ppcVar15 + -0x14) = &LAB_001915f2;\n          do_gold_unreachable(*(char **)((int)ppcVar15 + -0x10),*(int *)((int)ppcVar15 + -0xc),\n                              *(char **)((int)ppcVar15 + -8));\n        }\n        if (((pTVar2->name_)._M_string_length != 0) ||\n           ((pTVar2->name_).field_2._M_allocated_capacity != 0)) {\n          *(undefined ***)((int)ppcVar15 + -8) = local_90 + -0x3d215;\n          *(undefined4 *)((int)ppcVar15 + -0xc) = 0x2c;\n          *(int *)((int)ppcVar15 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1915b6;\n          do_gold_unreachable(*(char **)((int)ppcVar15 + -0x10),*(int *)((int)ppcVar15 + -0xc),\n                              *(char **)((int)ppcVar15 + -8));\n        }\n        *(undefined4 *)((int)ppcVar15 + -0xc) = 0x14;\n        *(Task **)((int)ppcVar15 + -0x10) = pTVar2;\n        *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191010;\n        operator_delete(*(void **)((int)ppcVar15 + -0x10),*(uint *)((int)ppcVar15 + -0xc));\n      }\n      pTVar10->_vptr_Task = (_func_int_varargs **)(local_90 + -0x1717);\n      pcVar13 = (pTVar10->name_)._M_dataplus._M_p;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)pcVar13 != &(pTVar10->name_).field_2) {\n        *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;\n        *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191034;\n        operator_delete(*(void **)((int)ppcVar15 + -0x10));\n      }\n      *(undefined4 *)((int)ppcVar15 + -0xc) = 0x30;\n      *(Task **)((int)ppcVar15 + -0x10) = pTVar10;\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191048;\n      operator_delete(*(void **)((int)ppcVar15 + -0x10),*(uint *)((int)ppcVar15 + -0xc));\n      pTVar10 = local_98;\n    }\n    else {\n      *(Task **)((int)ppcVar15 + -0x10) = pTVar10;\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1913d6;\n      (*(code *)ppuVar4)();\n      pTVar10 = local_98;\n    }\n    local_98 = pTVar10;\n    if (pTVar10 == (Task *)0x0) {\n      return true;\n    }\n  } while( true );\n}" { (declaration "Lock_impl *pLVar1;" type_identifier (pointer_declarator "*pLVar1" * identifier) ;) (declaration "Task *pTVar2;" type_identifier (pointer_declarator "*pTVar2" * identifier) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "undefined **ppuVar4;" type_identifier (pointer_declarator "**ppuVar4" * (pointer_declarator "*ppuVar4" * identifier)) ;) (declaration "size_type sVar5;" type_identifier identifier ;) (declaration "_func_int_varargs **pp_Var6;" type_identifier (pointer_declarator "**pp_Var6" * (pointer_declarator "*pp_Var6" * identifier)) ;) (declaration "_func_int_varargs *p_Var7;" type_identifier (pointer_declarator "*p_Var7" * identifier) ;) (declaration "code *pcVar8;" type_identifier (pointer_declarator "*pcVar8" * identifier) ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "Task *pTVar10;" type_identifier (pointer_declarator "*pTVar10" * identifier) ;) (declaration "pointer pcVar11;" type_identifier identifier ;) (declaration "size_t sVar12;" primitive_type identifier ;) (declaration "pointer pcVar13;" type_identifier identifier ;) (declaration "_Alloc_hider _Var14;" type_identifier identifier ;) (declaration "pointer *ppcVar15;" type_identifier (pointer_declarator "*ppcVar15" * identifier) ;) (declaration "pointer local_cc;" type_identifier identifier ;) (declaration "size_type *local_c8;" type_identifier (pointer_declarator "*local_c8" * identifier) ;) (declaration "int local_c4;" primitive_type identifier ;) (declaration "int local_c0;" primitive_type identifier ;) (declaration "int local_bc;" primitive_type identifier ;) (declaration "undefined4 local_b8;" type_identifier identifier ;) (declaration "int local_b4;" primitive_type identifier ;) (declaration "pointer local_b0;" type_identifier identifier ;) (declaration "undefined **local_ac;" type_identifier (pointer_declarator "**local_ac" * (pointer_declarator "*local_ac" * identifier)) ;) (declaration "long *local_a8;" (sized_type_specifier "long" long) (pointer_declarator "*local_a8" * identifier) ;) (declaration "undefined **local_a4;" type_identifier (pointer_declarator "**local_a4" * (pointer_declarator "*local_a4" * identifier)) ;) (declaration "Task_locker *local_a0;" type_identifier (pointer_declarator "*local_a0" * identifier) ;) (declaration "Timer *local_9c;" type_identifier (pointer_declarator "*local_9c" * identifier) ;) (declaration "Task *local_98;" type_identifier (pointer_declarator "*local_98" * identifier) ;) (declaration "undefined **local_94;" type_identifier (pointer_declarator "**local_94" * (pointer_declarator "*local_94" * identifier)) ;) (declaration "undefined **local_90;" type_identifier (pointer_declarator "**local_90" * (pointer_declarator "*local_90" * identifier)) ;) (declaration "int local_84;" primitive_type identifier ;) (declaration "int local_80;" primitive_type identifier ;) (declaration "int local_7c;" primitive_type identifier ;) (declaration "Task_locker tl;" type_identifier identifier ;) (declaration "_Alloc_hider local_64;" type_identifier identifier ;) (declaration "size_type local_60;" type_identifier identifier ;) (declaration "size_type local_5c [4];" type_identifier (array_declarator "local_5c [4]" identifier [ number_literal ]) ;) (declaration "Timer timer;" type_identifier identifier ;) (expression_statement "local_90 = &_GLOBAL_OFFSET_TABLE_;" (assignment_expression "local_90 = &_GLOBAL_OFFSET_TABLE_" identifier = (pointer_expression "&_GLOBAL_OFFSET_TABLE_" & identifier)) ;) (expression_statement "tl.count_ = 0;" (assignment_expression "tl.count_ = 0" (field_expression "tl.count_" identifier . field_identifier) = number_literal) ;) (expression_statement "pLVar1 = (this->lock_).lock_;" (assignment_expression "pLVar1 = (this->lock_).lock_" identifier = (field_expression "(this->lock_).lock_" (parenthesized_expression "(this->lock_)" ( (field_expression "this->lock_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "(*pLVar1->_vptr_Lock_impl[2])(pLVar1);" (call_expression "(*pLVar1->_vptr_Lock_impl[2])(pLVar1)" (parenthesized_expression "(*pLVar1->_vptr_Lock_impl[2])" ( (pointer_expression "*pLVar1->_vptr_Lock_impl[2]" * (subscript_expression "pLVar1->_vptr_Lock_impl[2]" (field_expression "pLVar1->_vptr_Lock_impl" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(pLVar1)" ( identifier ))) ;) comment (expression_statement "pTVar10 = find_runnable_or_wait(this,thread_number);" (assignment_expression "pTVar10 = find_runnable_or_wait(this,thread_number)" identifier = (call_expression "find_runnable_or_wait(this,thread_number)" identifier (argument_list "(this,thread_number)" ( identifier , identifier )))) ;) (if_statement "if (pTVar10 == (Task *)0x0) {\n    pLVar1 = (this->lock_).lock_;\n    (*pLVar1->_vptr_Lock_impl[3])(pLVar1);\n    return false;\n  }" if (parenthesized_expression "(pTVar10 == (Task *)0x0)" ( (binary_expression "pTVar10 == (Task *)0x0" identifier == (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pLVar1 = (this->lock_).lock_;\n    (*pLVar1->_vptr_Lock_impl[3])(pLVar1);\n    return false;\n  }" { (expression_statement "pLVar1 = (this->lock_).lock_;" (assignment_expression "pLVar1 = (this->lock_).lock_" identifier = (field_expression "(this->lock_).lock_" (parenthesized_expression "(this->lock_)" ( (field_expression "this->lock_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "(*pLVar1->_vptr_Lock_impl[3])(pLVar1);" (call_expression "(*pLVar1->_vptr_Lock_impl[3])(pLVar1)" (parenthesized_expression "(*pLVar1->_vptr_Lock_impl[3])" ( (pointer_expression "*pLVar1->_vptr_Lock_impl[3]" * (subscript_expression "pLVar1->_vptr_Lock_impl[3]" (field_expression "pLVar1->_vptr_Lock_impl" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(pLVar1)" ( identifier ))) ;) (return_statement "return false;" return false ;) })) (expression_statement "local_a0 = &tl;" (assignment_expression "local_a0 = &tl" identifier = (pointer_expression "&tl" & identifier)) ;) (expression_statement "local_ac = local_90 + -0xc8b40;" (assignment_expression "local_ac = local_90 + -0xc8b40" identifier = (binary_expression "local_90 + -0xc8b40" identifier + number_literal)) ;) (if_statement "if ((undefined **)pTVar10->_vptr_Task[3] != local_ac) {\n                    /* try { // try from 00191525 to 00191526 has its CatchHandler @ 001915f2 */\n    (*pTVar10->_vptr_Task[3])(pTVar10,local_a0);\n  }" if (parenthesized_expression "((undefined **)pTVar10->_vptr_Task[3] != local_ac)" ( (binary_expression "(undefined **)pTVar10->_vptr_Task[3] != local_ac" (cast_expression "(undefined **)pTVar10->_vptr_Task[3]" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "pTVar10->_vptr_Task[3]" (field_expression "pTVar10->_vptr_Task" identifier -> field_identifier) [ number_literal ])) != identifier) )) (compound_statement "{\n                    /* try { // try from 00191525 to 00191526 has its CatchHandler @ 001915f2 */\n    (*pTVar10->_vptr_Task[3])(pTVar10,local_a0);\n  }" { comment (expression_statement "(*pTVar10->_vptr_Task[3])(pTVar10,local_a0);" (call_expression "(*pTVar10->_vptr_Task[3])(pTVar10,local_a0)" (parenthesized_expression "(*pTVar10->_vptr_Task[3])" ( (pointer_expression "*pTVar10->_vptr_Task[3]" * (subscript_expression "pTVar10->_vptr_Task[3]" (field_expression "pTVar10->_vptr_Task" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(pTVar10,local_a0)" ( identifier , identifier ))) ;) })) (expression_statement "ppcVar15 = &local_cc;" (assignment_expression "ppcVar15 = &local_cc" identifier = (pointer_expression "&local_cc" & identifier)) ;) (expression_statement "pLVar1 = (this->lock_).lock_;" (assignment_expression "pLVar1 = (this->lock_).lock_" identifier = (field_expression "(this->lock_).lock_" (parenthesized_expression "(this->lock_)" ( (field_expression "this->lock_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "this->running_ = this->running_ + 1;" (assignment_expression "this->running_ = this->running_ + 1" (field_expression "this->running_" identifier -> field_identifier) = (binary_expression "this->running_ + 1" (field_expression "this->running_" identifier -> field_identifier) + number_literal)) ;) (expression_statement "(*pLVar1->_vptr_Lock_impl[3])(pLVar1);" (call_expression "(*pLVar1->_vptr_Lock_impl[3])(pLVar1)" (parenthesized_expression "(*pLVar1->_vptr_Lock_impl[3])" ( (pointer_expression "*pLVar1->_vptr_Lock_impl[3]" * (subscript_expression "pLVar1->_vptr_Lock_impl[3]" (field_expression "pLVar1->_vptr_Lock_impl" identifier -> field_identifier) [ number_literal ])) )) (argument_list "(pLVar1)" ( identifier ))) ;) (expression_statement "local_94 = local_90 + 0xde;" (assignment_expression "local_94 = local_90 + 0xde" identifier = (binary_expression "local_90 + 0xde" identifier + number_literal)) ;) (expression_statement "local_a4 = local_90 + -0xc8b3c;" (assignment_expression "local_a4 = local_90 + -0xc8b3c" identifier = (binary_expression "local_90 + -0xc8b3c" identifier + number_literal)) ;) (expression_statement "local_a8 = &timer.start_time_.wall;" (assignment_expression "local_a8 = &timer.start_time_.wall" identifier = (pointer_expression "&timer.start_time_.wall" & (field_expression "timer.start_time_.wall" (field_expression "timer.start_time_" identifier . field_identifier) . field_identifier))) ;) (expression_statement "local_9c = &timer;" (assignment_expression "local_9c = &timer" identifier = (pointer_expression "&timer" & identifier)) ;) (do_statement "do {\n    piVar3 = (int *)*local_94;\n    if ((piVar3[2] != 0) && ((*(byte *)(piVar3 + 5) & 1) != 0)) {\n      local_98 = (Task *)*piVar3;\n      if ((pTVar10->name_)._M_string_length == 0) {\n        ppuVar4 = (undefined **)pTVar10->_vptr_Task[5];\n        if (ppuVar4 == local_90 + -0xc8a2c) {\n          pcVar13 = pTVar10[1].name_._M_dataplus._M_p;\n          timer.start_time_.user = (long)local_a8;\n          pcVar11 = (pointer)0xffffffff;\n          if (pcVar13 != (pointer)0x0) {\n            *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;\n            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1910c6;\n            local_b0 = pcVar13;\n            sVar12 = strlen(*(char **)((int)ppcVar15 + -0x10));\n            pcVar11 = local_b0 + sVar12;\n            pcVar13 = local_b0;\n          }\n          *(undefined4 *)((int)ppcVar15 + -4) = 0;\n          *(pointer *)((int)ppcVar15 + -8) = pcVar11;\n          *(pointer *)((int)ppcVar15 + -0xc) = pcVar13;\n          *(Timer **)((int)ppcVar15 + -0x10) = local_9c;\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1910e0;\n          std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n          _M_construct<char_const*>();\n        }\n        else {\n          *(Task **)((int)ppcVar15 + -0xc) = pTVar10;\n          *(Timer **)((int)ppcVar15 + -0x10) = local_9c;\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1914bc;\n          (*(code *)ppuVar4)();\n          ppcVar15 = (pointer *)((int)ppcVar15 + -4);\n        }\n        pcVar13 = (pTVar10->name_)._M_dataplus._M_p;\n        if ((long *)timer.start_time_.user == local_a8) {\n          if (timer.start_time_.sys != 0) {\n            if (timer.start_time_.sys == 1) {\n              *pcVar13 = (char)timer.start_time_.wall;\n              pcVar13 = (pTVar10->name_)._M_dataplus._M_p;\n            }\n            else {\n              *(long *)((int)ppcVar15 + -8) = timer.start_time_.sys;\n              *(long **)((int)ppcVar15 + -0xc) = local_a8;\n              *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;\n              *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)ppcVar15 + -0x10),*(void **)((int)ppcVar15 + -0xc),\n                     *(size_t *)((int)ppcVar15 + -8));\n              pcVar13 = (pTVar10->name_)._M_dataplus._M_p;\n            }\n          }\n          (pTVar10->name_)._M_string_length = timer.start_time_.sys;\n          pcVar13[timer.start_time_.sys] = '\0';\n          sVar5 = timer.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               *)pcVar13 == &(pTVar10->name_).field_2) {\n            (pTVar10->name_)._M_dataplus._M_p = (pointer)timer.start_time_.user;\n            (pTVar10->name_)._M_string_length = timer.start_time_.sys;\n            (pTVar10->name_).field_2._M_allocated_capacity = timer.start_time_.wall;\n          }\n          else {\n            (pTVar10->name_)._M_dataplus._M_p = (pointer)timer.start_time_.user;\n            sVar5 = (pTVar10->name_).field_2._M_allocated_capacity;\n            (pTVar10->name_)._M_string_length = timer.start_time_.sys;\n            (pTVar10->name_).field_2._M_allocated_capacity = timer.start_time_.wall;\n            timer.start_time_.user = (long)pcVar13;\n            if (pcVar13 != (pointer)0x0) goto LAB_00191120;\n          }\n          timer.start_time_.user = (long)local_a8;\n          sVar5 = timer.start_time_.wall;\n        }\nLAB_00191120:\n        timer.start_time_.wall = sVar5;\n        timer.start_time_.sys = 0;\n        *(undefined1 *)timer.start_time_.user = 0;\n        if ((long *)timer.start_time_.user != local_a8) {\n          *(long *)((int)ppcVar15 + -0x10) = timer.start_time_.user;\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191144;\n          operator_delete(*(void **)((int)ppcVar15 + -0x10));\n        }\n      }\n      *(pointer *)((int)ppcVar15 + -4) = (pTVar10->name_)._M_dataplus._M_p;\n      *(int *)((int)ppcVar15 + -8) = thread_number;\n      *(int *)((int)ppcVar15 + -0xc) = (int)local_90 + -0xf4943;\n      *(Task **)((int)ppcVar15 + -0x10) = local_98;\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191165;\n      Errors::debug(*(Errors **)((int)ppcVar15 + -0x10),*(char **)((int)ppcVar15 + -0xc));\n    }\n    *(Timer **)((int)ppcVar15 + -0x10) = local_9c;\n    *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19117c;\n    Timer::Timer(*(Timer **)((int)ppcVar15 + -0x10));\n    if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {\n      *(Timer **)((int)ppcVar15 + -0x10) = local_9c;\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1911a8;\n      Timer::start(*(Timer **)((int)ppcVar15 + -0x10));\n    }\n    ppuVar4 = (undefined **)pTVar10->_vptr_Task[4];\n    if (ppuVar4 == local_a4) {\n      pp_Var6 = pTVar10[1]._vptr_Task;\n      p_Var7 = *pp_Var6;\n      *(Task **)((int)ppcVar15 + -8) = pTVar10;\n      *(Workqueue **)((int)ppcVar15 + -0xc) = this;\n      *(_func_int_varargs ***)((int)ppcVar15 + -0x10) = pp_Var6;\n      pcVar8 = *(code **)(p_Var7 + 8);\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1911ca;\n      (*pcVar8)();\n    }\n    else {\n      *(Workqueue **)((int)ppcVar15 + -0xc) = this;\n      *(Task **)((int)ppcVar15 + -0x10) = pTVar10;\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1913ff;\n      (*(code *)ppuVar4)();\n    }\n    if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {\n      *(Timer **)((int)ppcVar15 + -0xc) = local_9c;\n      *(int **)((int)ppcVar15 + -0x10) = &local_84;\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191202;\n      Timer::get_elapsed_time(*(Timer **)((int)ppcVar15 + -0xc));\n      puVar9 = (undefined4 *)*local_94;\n      if ((puVar9[2] != 0) && ((*(byte *)(puVar9 + 5) & 1) != 0)) {\n        local_b8 = *puVar9;\n        local_bc = local_7c / 1000;\n        local_98 = (Task *)((local_7c % 1000) * 1000);\n        local_c0 = local_80 / 1000;\n        local_b0 = (pointer)((local_80 % 1000) * 1000);\n        local_c4 = local_84 / 1000;\n        local_b4 = (local_84 % 1000) * 1000;\n        if ((pTVar10->name_)._M_string_length == 0) {\n          ppuVar4 = (undefined **)pTVar10->_vptr_Task[5];\n          if (ppuVar4 == local_90 + -0xc8a2c) {\n            pcVar13 = pTVar10[1].name_._M_dataplus._M_p;\n            local_c8 = local_5c;\n            pcVar11 = (pointer)0xffffffff;\n            local_64._M_p = (pointer)local_c8;\n            if (pcVar13 != (pointer)0x0) {\n              *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;\n              *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1912ff;\n              local_cc = pcVar13;\n              sVar12 = strlen(*(char **)((int)ppcVar15 + -0x10));\n              pcVar11 = local_cc + sVar12;\n              pcVar13 = local_cc;\n            }\n            *(undefined4 *)((int)ppcVar15 + -4) = 0;\n            *(pointer *)((int)ppcVar15 + -8) = pcVar11;\n            *(pointer *)((int)ppcVar15 + -0xc) = pcVar13;\n            *(_Alloc_hider **)((int)ppcVar15 + -0x10) = &local_64;\n            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191317;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char_const*>();\n          }\n          else {\n            *(Task **)((int)ppcVar15 + -0xc) = pTVar10;\n            *(_Alloc_hider **)((int)ppcVar15 + -0x10) = &local_64;\n            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191579;\n            (*(code *)ppuVar4)();\n            local_c8 = local_5c;\n            ppcVar15 = (pointer *)((int)ppcVar15 + -4);\n          }\n          _Var14._M_p = (pTVar10->name_)._M_dataplus._M_p;\n          if ((size_type *)local_64._M_p == local_c8) {\n            if (local_60 != 0) {\n              if (local_60 == 1) {\n                *_Var14._M_p = (char)local_5c[0];\n                _Var14._M_p = (pTVar10->name_)._M_dataplus._M_p;\n              }\n              else {\n                *(size_type *)((int)ppcVar15 + -8) = local_60;\n                *(size_type **)((int)ppcVar15 + -0xc) = local_c8;\n                *(pointer *)((int)ppcVar15 + -0x10) = _Var14._M_p;\n                *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19154f;\n                memcpy(*(void **)((int)ppcVar15 + -0x10),*(void **)((int)ppcVar15 + -0xc),\n                       *(size_t *)((int)ppcVar15 + -8));\n                _Var14._M_p = (pTVar10->name_)._M_dataplus._M_p;\n              }\n            }\n            (pTVar10->name_)._M_string_length = local_60;\n            *(_Var14._M_p + local_60) = '\0';\n            _Var14._M_p = local_64._M_p;\n            sVar5 = local_5c[0];\n          }\n          else {\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)_Var14._M_p == &(pTVar10->name_).field_2) {\n              (pTVar10->name_)._M_dataplus._M_p = local_64._M_p;\n              (pTVar10->name_)._M_string_length = local_60;\n              (pTVar10->name_).field_2._M_allocated_capacity = local_5c[0];\n            }\n            else {\n              (pTVar10->name_)._M_dataplus._M_p = local_64._M_p;\n              sVar5 = (pTVar10->name_).field_2._M_allocated_capacity;\n              (pTVar10->name_)._M_string_length = local_60;\n              (pTVar10->name_).field_2._M_allocated_capacity = local_5c[0];\n              local_64._M_p = _Var14._M_p;\n              if ((size_type *)_Var14._M_p != (size_type *)0x0) goto LAB_00191357;\n            }\n            local_64._M_p = (pointer)local_c8;\n            local_c8 = local_5c;\n            _Var14._M_p = (pointer)local_c8;\n            sVar5 = local_5c[0];\n          }\nLAB_00191357:\n          local_5c[0] = sVar5;\n          local_60 = 0;\n          *_Var14._M_p = '\0';\n          if ((size_type *)local_64._M_p != local_c8) {\n            *(pointer *)((int)ppcVar15 + -0x10) = local_64._M_p;\n            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19137b;\n            operator_delete(*(void **)((int)ppcVar15 + -0x10));\n          }\n        }\n        *(Task **)((int)ppcVar15 + -0xc) = local_98;\n        *(int *)((int)ppcVar15 + -0x10) = local_bc;\n        *(pointer *)((int)ppcVar15 + -0x14) = local_b0;\n        *(int *)((int)ppcVar15 + -0x18) = local_c0;\n        *(int *)((int)ppcVar15 + -0x1c) = local_b4;\n        *(int *)((int)ppcVar15 + -0x20) = local_c4;\n        *(pointer *)((int)ppcVar15 + -0x24) = (pTVar10->name_)._M_dataplus._M_p;\n        *(int *)((int)ppcVar15 + -0x28) = thread_number;\n        *(undefined ***)((int)ppcVar15 + -0x2c) = local_90 + -0x3d24b;\n        *(undefined4 *)((int)ppcVar15 + -0x30) = local_b8;\n        *(undefined4 *)((int)ppcVar15 + -0x34) = 0x1913c3;\n        Errors::debug(*(Errors **)((int)ppcVar15 + -0x30),*(char **)((int)ppcVar15 + -0x2c));\n      }\n    }\n    pLVar1 = (this->lock_).lock_;\n    pp_Var6 = pLVar1->_vptr_Lock_impl;\n    *(Lock_impl **)((int)ppcVar15 + -0x10) = pLVar1;\n    p_Var7 = pp_Var6[2];\n    *(undefined4 *)((int)ppcVar15 + -0x14) = 0x190f43;\n    (*p_Var7)();\n    this->running_ = this->running_ + -1;\n    *(Task_locker **)((int)ppcVar15 + -8) = local_a0;\n    *(Task **)((int)ppcVar15 + -0xc) = pTVar10;\n    *(Workqueue **)((int)ppcVar15 + -0x10) = this;\n                    /* try { // try from 00190f52 to 00190f56 has its CatchHandler @ 001915f9 */\n    *(undefined4 *)((int)ppcVar15 + -0x14) = 0x190f57;\n    local_98 = release_locks(*(Workqueue **)((int)ppcVar15 + -0x10),*(Task **)((int)ppcVar15 + -0xc)\n                             ,*(Task_locker **)((int)ppcVar15 + -8));\n    if (local_98 == (Task *)0x0) {\n      *(Workqueue **)((int)ppcVar15 + -0x10) = this;\n                    /* try { // try from 00191414 to 00191440 has its CatchHandler @ 001915f9 */\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191419;\n      local_98 = find_runnable(*(Workqueue **)((int)ppcVar15 + -0x10));\n      if (local_98 != (Task *)0x0) goto LAB_00190f68;\n    }\n    else {\nLAB_00190f68:\n      tl.count_ = 0;\n      ppuVar4 = (undefined **)local_98->_vptr_Task[3];\n      if (ppuVar4 != local_ac) {\n        *(Task_locker **)((int)ppcVar15 + -0xc) = local_a0;\n        *(Task **)((int)ppcVar15 + -0x10) = local_98;\n        *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191441;\n        (*(code *)ppuVar4)();\n      }\n      this->running_ = this->running_ + 1;\n    }\n    pLVar1 = (this->lock_).lock_;\n    pp_Var6 = pLVar1->_vptr_Lock_impl;\n    *(Lock_impl **)((int)ppcVar15 + -0x10) = pLVar1;\n    p_Var7 = pp_Var6[3];\n    *(undefined4 *)((int)ppcVar15 + -0x14) = 0x190f95;\n    (*p_Var7)();\n    ppuVar4 = (undefined **)pTVar10->_vptr_Task[1];\n    if (ppuVar4 == local_90 + -0xc8ab8) {\n      pTVar10->_vptr_Task = (_func_int_varargs **)(local_90 + -0x307b);\n      pp_Var6 = pTVar10[1]._vptr_Task;\n      if (pp_Var6 != (_func_int_varargs **)0x0) {\n        p_Var7 = *pp_Var6;\n        *(_func_int_varargs ***)((int)ppcVar15 + -0x10) = pp_Var6;\n        pcVar8 = *(code **)(p_Var7 + 4);\n        *(undefined4 *)((int)ppcVar15 + -0x14) = 0x190fc9;\n        (*pcVar8)();\n      }\n      pTVar2 = pTVar10[1].list_next_;\n      if (pTVar2 != (Task *)0x0) {\n        if (pTVar2->list_next_ != (Task *)0x0) {\n          *(undefined ***)((int)ppcVar15 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)ppcVar15 + -0xc) = 100;\n          *(int *)((int)ppcVar15 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1915d4;\n          do_gold_unreachable(*(char **)((int)ppcVar15 + -0x10),*(int *)((int)ppcVar15 + -0xc),\n                              *(char **)((int)ppcVar15 + -8));\n        }\n        if ((pTVar2->name_)._M_dataplus._M_p != (pointer)0x0) {\n          *(undefined ***)((int)ppcVar15 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)ppcVar15 + -0xc) = 0x65;\n          *(int *)((int)ppcVar15 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined1 **)((int)ppcVar15 + -0x14) = &LAB_001915f2;\n          do_gold_unreachable(*(char **)((int)ppcVar15 + -0x10),*(int *)((int)ppcVar15 + -0xc),\n                              *(char **)((int)ppcVar15 + -8));\n        }\n        if (((pTVar2->name_)._M_string_length != 0) ||\n           ((pTVar2->name_).field_2._M_allocated_capacity != 0)) {\n          *(undefined ***)((int)ppcVar15 + -8) = local_90 + -0x3d215;\n          *(undefined4 *)((int)ppcVar15 + -0xc) = 0x2c;\n          *(int *)((int)ppcVar15 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1915b6;\n          do_gold_unreachable(*(char **)((int)ppcVar15 + -0x10),*(int *)((int)ppcVar15 + -0xc),\n                              *(char **)((int)ppcVar15 + -8));\n        }\n        *(undefined4 *)((int)ppcVar15 + -0xc) = 0x14;\n        *(Task **)((int)ppcVar15 + -0x10) = pTVar2;\n        *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191010;\n        operator_delete(*(void **)((int)ppcVar15 + -0x10),*(uint *)((int)ppcVar15 + -0xc));\n      }\n      pTVar10->_vptr_Task = (_func_int_varargs **)(local_90 + -0x1717);\n      pcVar13 = (pTVar10->name_)._M_dataplus._M_p;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)pcVar13 != &(pTVar10->name_).field_2) {\n        *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;\n        *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191034;\n        operator_delete(*(void **)((int)ppcVar15 + -0x10));\n      }\n      *(undefined4 *)((int)ppcVar15 + -0xc) = 0x30;\n      *(Task **)((int)ppcVar15 + -0x10) = pTVar10;\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191048;\n      operator_delete(*(void **)((int)ppcVar15 + -0x10),*(uint *)((int)ppcVar15 + -0xc));\n      pTVar10 = local_98;\n    }\n    else {\n      *(Task **)((int)ppcVar15 + -0x10) = pTVar10;\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1913d6;\n      (*(code *)ppuVar4)();\n      pTVar10 = local_98;\n    }\n    local_98 = pTVar10;\n    if (pTVar10 == (Task *)0x0) {\n      return true;\n    }\n  } while( true );" do (compound_statement "{\n    piVar3 = (int *)*local_94;\n    if ((piVar3[2] != 0) && ((*(byte *)(piVar3 + 5) & 1) != 0)) {\n      local_98 = (Task *)*piVar3;\n      if ((pTVar10->name_)._M_string_length == 0) {\n        ppuVar4 = (undefined **)pTVar10->_vptr_Task[5];\n        if (ppuVar4 == local_90 + -0xc8a2c) {\n          pcVar13 = pTVar10[1].name_._M_dataplus._M_p;\n          timer.start_time_.user = (long)local_a8;\n          pcVar11 = (pointer)0xffffffff;\n          if (pcVar13 != (pointer)0x0) {\n            *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;\n            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1910c6;\n            local_b0 = pcVar13;\n            sVar12 = strlen(*(char **)((int)ppcVar15 + -0x10));\n            pcVar11 = local_b0 + sVar12;\n            pcVar13 = local_b0;\n          }\n          *(undefined4 *)((int)ppcVar15 + -4) = 0;\n          *(pointer *)((int)ppcVar15 + -8) = pcVar11;\n          *(pointer *)((int)ppcVar15 + -0xc) = pcVar13;\n          *(Timer **)((int)ppcVar15 + -0x10) = local_9c;\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1910e0;\n          std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n          _M_construct<char_const*>();\n        }\n        else {\n          *(Task **)((int)ppcVar15 + -0xc) = pTVar10;\n          *(Timer **)((int)ppcVar15 + -0x10) = local_9c;\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1914bc;\n          (*(code *)ppuVar4)();\n          ppcVar15 = (pointer *)((int)ppcVar15 + -4);\n        }\n        pcVar13 = (pTVar10->name_)._M_dataplus._M_p;\n        if ((long *)timer.start_time_.user == local_a8) {\n          if (timer.start_time_.sys != 0) {\n            if (timer.start_time_.sys == 1) {\n              *pcVar13 = (char)timer.start_time_.wall;\n              pcVar13 = (pTVar10->name_)._M_dataplus._M_p;\n            }\n            else {\n              *(long *)((int)ppcVar15 + -8) = timer.start_time_.sys;\n              *(long **)((int)ppcVar15 + -0xc) = local_a8;\n              *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;\n              *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)ppcVar15 + -0x10),*(void **)((int)ppcVar15 + -0xc),\n                     *(size_t *)((int)ppcVar15 + -8));\n              pcVar13 = (pTVar10->name_)._M_dataplus._M_p;\n            }\n          }\n          (pTVar10->name_)._M_string_length = timer.start_time_.sys;\n          pcVar13[timer.start_time_.sys] = '\0';\n          sVar5 = timer.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               *)pcVar13 == &(pTVar10->name_).field_2) {\n            (pTVar10->name_)._M_dataplus._M_p = (pointer)timer.start_time_.user;\n            (pTVar10->name_)._M_string_length = timer.start_time_.sys;\n            (pTVar10->name_).field_2._M_allocated_capacity = timer.start_time_.wall;\n          }\n          else {\n            (pTVar10->name_)._M_dataplus._M_p = (pointer)timer.start_time_.user;\n            sVar5 = (pTVar10->name_).field_2._M_allocated_capacity;\n            (pTVar10->name_)._M_string_length = timer.start_time_.sys;\n            (pTVar10->name_).field_2._M_allocated_capacity = timer.start_time_.wall;\n            timer.start_time_.user = (long)pcVar13;\n            if (pcVar13 != (pointer)0x0) goto LAB_00191120;\n          }\n          timer.start_time_.user = (long)local_a8;\n          sVar5 = timer.start_time_.wall;\n        }\nLAB_00191120:\n        timer.start_time_.wall = sVar5;\n        timer.start_time_.sys = 0;\n        *(undefined1 *)timer.start_time_.user = 0;\n        if ((long *)timer.start_time_.user != local_a8) {\n          *(long *)((int)ppcVar15 + -0x10) = timer.start_time_.user;\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191144;\n          operator_delete(*(void **)((int)ppcVar15 + -0x10));\n        }\n      }\n      *(pointer *)((int)ppcVar15 + -4) = (pTVar10->name_)._M_dataplus._M_p;\n      *(int *)((int)ppcVar15 + -8) = thread_number;\n      *(int *)((int)ppcVar15 + -0xc) = (int)local_90 + -0xf4943;\n      *(Task **)((int)ppcVar15 + -0x10) = local_98;\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191165;\n      Errors::debug(*(Errors **)((int)ppcVar15 + -0x10),*(char **)((int)ppcVar15 + -0xc));\n    }\n    *(Timer **)((int)ppcVar15 + -0x10) = local_9c;\n    *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19117c;\n    Timer::Timer(*(Timer **)((int)ppcVar15 + -0x10));\n    if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {\n      *(Timer **)((int)ppcVar15 + -0x10) = local_9c;\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1911a8;\n      Timer::start(*(Timer **)((int)ppcVar15 + -0x10));\n    }\n    ppuVar4 = (undefined **)pTVar10->_vptr_Task[4];\n    if (ppuVar4 == local_a4) {\n      pp_Var6 = pTVar10[1]._vptr_Task;\n      p_Var7 = *pp_Var6;\n      *(Task **)((int)ppcVar15 + -8) = pTVar10;\n      *(Workqueue **)((int)ppcVar15 + -0xc) = this;\n      *(_func_int_varargs ***)((int)ppcVar15 + -0x10) = pp_Var6;\n      pcVar8 = *(code **)(p_Var7 + 8);\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1911ca;\n      (*pcVar8)();\n    }\n    else {\n      *(Workqueue **)((int)ppcVar15 + -0xc) = this;\n      *(Task **)((int)ppcVar15 + -0x10) = pTVar10;\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1913ff;\n      (*(code *)ppuVar4)();\n    }\n    if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {\n      *(Timer **)((int)ppcVar15 + -0xc) = local_9c;\n      *(int **)((int)ppcVar15 + -0x10) = &local_84;\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191202;\n      Timer::get_elapsed_time(*(Timer **)((int)ppcVar15 + -0xc));\n      puVar9 = (undefined4 *)*local_94;\n      if ((puVar9[2] != 0) && ((*(byte *)(puVar9 + 5) & 1) != 0)) {\n        local_b8 = *puVar9;\n        local_bc = local_7c / 1000;\n        local_98 = (Task *)((local_7c % 1000) * 1000);\n        local_c0 = local_80 / 1000;\n        local_b0 = (pointer)((local_80 % 1000) * 1000);\n        local_c4 = local_84 / 1000;\n        local_b4 = (local_84 % 1000) * 1000;\n        if ((pTVar10->name_)._M_string_length == 0) {\n          ppuVar4 = (undefined **)pTVar10->_vptr_Task[5];\n          if (ppuVar4 == local_90 + -0xc8a2c) {\n            pcVar13 = pTVar10[1].name_._M_dataplus._M_p;\n            local_c8 = local_5c;\n            pcVar11 = (pointer)0xffffffff;\n            local_64._M_p = (pointer)local_c8;\n            if (pcVar13 != (pointer)0x0) {\n              *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;\n              *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1912ff;\n              local_cc = pcVar13;\n              sVar12 = strlen(*(char **)((int)ppcVar15 + -0x10));\n              pcVar11 = local_cc + sVar12;\n              pcVar13 = local_cc;\n            }\n            *(undefined4 *)((int)ppcVar15 + -4) = 0;\n            *(pointer *)((int)ppcVar15 + -8) = pcVar11;\n            *(pointer *)((int)ppcVar15 + -0xc) = pcVar13;\n            *(_Alloc_hider **)((int)ppcVar15 + -0x10) = &local_64;\n            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191317;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char_const*>();\n          }\n          else {\n            *(Task **)((int)ppcVar15 + -0xc) = pTVar10;\n            *(_Alloc_hider **)((int)ppcVar15 + -0x10) = &local_64;\n            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191579;\n            (*(code *)ppuVar4)();\n            local_c8 = local_5c;\n            ppcVar15 = (pointer *)((int)ppcVar15 + -4);\n          }\n          _Var14._M_p = (pTVar10->name_)._M_dataplus._M_p;\n          if ((size_type *)local_64._M_p == local_c8) {\n            if (local_60 != 0) {\n              if (local_60 == 1) {\n                *_Var14._M_p = (char)local_5c[0];\n                _Var14._M_p = (pTVar10->name_)._M_dataplus._M_p;\n              }\n              else {\n                *(size_type *)((int)ppcVar15 + -8) = local_60;\n                *(size_type **)((int)ppcVar15 + -0xc) = local_c8;\n                *(pointer *)((int)ppcVar15 + -0x10) = _Var14._M_p;\n                *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19154f;\n                memcpy(*(void **)((int)ppcVar15 + -0x10),*(void **)((int)ppcVar15 + -0xc),\n                       *(size_t *)((int)ppcVar15 + -8));\n                _Var14._M_p = (pTVar10->name_)._M_dataplus._M_p;\n              }\n            }\n            (pTVar10->name_)._M_string_length = local_60;\n            *(_Var14._M_p + local_60) = '\0';\n            _Var14._M_p = local_64._M_p;\n            sVar5 = local_5c[0];\n          }\n          else {\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)_Var14._M_p == &(pTVar10->name_).field_2) {\n              (pTVar10->name_)._M_dataplus._M_p = local_64._M_p;\n              (pTVar10->name_)._M_string_length = local_60;\n              (pTVar10->name_).field_2._M_allocated_capacity = local_5c[0];\n            }\n            else {\n              (pTVar10->name_)._M_dataplus._M_p = local_64._M_p;\n              sVar5 = (pTVar10->name_).field_2._M_allocated_capacity;\n              (pTVar10->name_)._M_string_length = local_60;\n              (pTVar10->name_).field_2._M_allocated_capacity = local_5c[0];\n              local_64._M_p = _Var14._M_p;\n              if ((size_type *)_Var14._M_p != (size_type *)0x0) goto LAB_00191357;\n            }\n            local_64._M_p = (pointer)local_c8;\n            local_c8 = local_5c;\n            _Var14._M_p = (pointer)local_c8;\n            sVar5 = local_5c[0];\n          }\nLAB_00191357:\n          local_5c[0] = sVar5;\n          local_60 = 0;\n          *_Var14._M_p = '\0';\n          if ((size_type *)local_64._M_p != local_c8) {\n            *(pointer *)((int)ppcVar15 + -0x10) = local_64._M_p;\n            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19137b;\n            operator_delete(*(void **)((int)ppcVar15 + -0x10));\n          }\n        }\n        *(Task **)((int)ppcVar15 + -0xc) = local_98;\n        *(int *)((int)ppcVar15 + -0x10) = local_bc;\n        *(pointer *)((int)ppcVar15 + -0x14) = local_b0;\n        *(int *)((int)ppcVar15 + -0x18) = local_c0;\n        *(int *)((int)ppcVar15 + -0x1c) = local_b4;\n        *(int *)((int)ppcVar15 + -0x20) = local_c4;\n        *(pointer *)((int)ppcVar15 + -0x24) = (pTVar10->name_)._M_dataplus._M_p;\n        *(int *)((int)ppcVar15 + -0x28) = thread_number;\n        *(undefined ***)((int)ppcVar15 + -0x2c) = local_90 + -0x3d24b;\n        *(undefined4 *)((int)ppcVar15 + -0x30) = local_b8;\n        *(undefined4 *)((int)ppcVar15 + -0x34) = 0x1913c3;\n        Errors::debug(*(Errors **)((int)ppcVar15 + -0x30),*(char **)((int)ppcVar15 + -0x2c));\n      }\n    }\n    pLVar1 = (this->lock_).lock_;\n    pp_Var6 = pLVar1->_vptr_Lock_impl;\n    *(Lock_impl **)((int)ppcVar15 + -0x10) = pLVar1;\n    p_Var7 = pp_Var6[2];\n    *(undefined4 *)((int)ppcVar15 + -0x14) = 0x190f43;\n    (*p_Var7)();\n    this->running_ = this->running_ + -1;\n    *(Task_locker **)((int)ppcVar15 + -8) = local_a0;\n    *(Task **)((int)ppcVar15 + -0xc) = pTVar10;\n    *(Workqueue **)((int)ppcVar15 + -0x10) = this;\n                    /* try { // try from 00190f52 to 00190f56 has its CatchHandler @ 001915f9 */\n    *(undefined4 *)((int)ppcVar15 + -0x14) = 0x190f57;\n    local_98 = release_locks(*(Workqueue **)((int)ppcVar15 + -0x10),*(Task **)((int)ppcVar15 + -0xc)\n                             ,*(Task_locker **)((int)ppcVar15 + -8));\n    if (local_98 == (Task *)0x0) {\n      *(Workqueue **)((int)ppcVar15 + -0x10) = this;\n                    /* try { // try from 00191414 to 00191440 has its CatchHandler @ 001915f9 */\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191419;\n      local_98 = find_runnable(*(Workqueue **)((int)ppcVar15 + -0x10));\n      if (local_98 != (Task *)0x0) goto LAB_00190f68;\n    }\n    else {\nLAB_00190f68:\n      tl.count_ = 0;\n      ppuVar4 = (undefined **)local_98->_vptr_Task[3];\n      if (ppuVar4 != local_ac) {\n        *(Task_locker **)((int)ppcVar15 + -0xc) = local_a0;\n        *(Task **)((int)ppcVar15 + -0x10) = local_98;\n        *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191441;\n        (*(code *)ppuVar4)();\n      }\n      this->running_ = this->running_ + 1;\n    }\n    pLVar1 = (this->lock_).lock_;\n    pp_Var6 = pLVar1->_vptr_Lock_impl;\n    *(Lock_impl **)((int)ppcVar15 + -0x10) = pLVar1;\n    p_Var7 = pp_Var6[3];\n    *(undefined4 *)((int)ppcVar15 + -0x14) = 0x190f95;\n    (*p_Var7)();\n    ppuVar4 = (undefined **)pTVar10->_vptr_Task[1];\n    if (ppuVar4 == local_90 + -0xc8ab8) {\n      pTVar10->_vptr_Task = (_func_int_varargs **)(local_90 + -0x307b);\n      pp_Var6 = pTVar10[1]._vptr_Task;\n      if (pp_Var6 != (_func_int_varargs **)0x0) {\n        p_Var7 = *pp_Var6;\n        *(_func_int_varargs ***)((int)ppcVar15 + -0x10) = pp_Var6;\n        pcVar8 = *(code **)(p_Var7 + 4);\n        *(undefined4 *)((int)ppcVar15 + -0x14) = 0x190fc9;\n        (*pcVar8)();\n      }\n      pTVar2 = pTVar10[1].list_next_;\n      if (pTVar2 != (Task *)0x0) {\n        if (pTVar2->list_next_ != (Task *)0x0) {\n          *(undefined ***)((int)ppcVar15 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)ppcVar15 + -0xc) = 100;\n          *(int *)((int)ppcVar15 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1915d4;\n          do_gold_unreachable(*(char **)((int)ppcVar15 + -0x10),*(int *)((int)ppcVar15 + -0xc),\n                              *(char **)((int)ppcVar15 + -8));\n        }\n        if ((pTVar2->name_)._M_dataplus._M_p != (pointer)0x0) {\n          *(undefined ***)((int)ppcVar15 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)ppcVar15 + -0xc) = 0x65;\n          *(int *)((int)ppcVar15 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined1 **)((int)ppcVar15 + -0x14) = &LAB_001915f2;\n          do_gold_unreachable(*(char **)((int)ppcVar15 + -0x10),*(int *)((int)ppcVar15 + -0xc),\n                              *(char **)((int)ppcVar15 + -8));\n        }\n        if (((pTVar2->name_)._M_string_length != 0) ||\n           ((pTVar2->name_).field_2._M_allocated_capacity != 0)) {\n          *(undefined ***)((int)ppcVar15 + -8) = local_90 + -0x3d215;\n          *(undefined4 *)((int)ppcVar15 + -0xc) = 0x2c;\n          *(int *)((int)ppcVar15 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1915b6;\n          do_gold_unreachable(*(char **)((int)ppcVar15 + -0x10),*(int *)((int)ppcVar15 + -0xc),\n                              *(char **)((int)ppcVar15 + -8));\n        }\n        *(undefined4 *)((int)ppcVar15 + -0xc) = 0x14;\n        *(Task **)((int)ppcVar15 + -0x10) = pTVar2;\n        *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191010;\n        operator_delete(*(void **)((int)ppcVar15 + -0x10),*(uint *)((int)ppcVar15 + -0xc));\n      }\n      pTVar10->_vptr_Task = (_func_int_varargs **)(local_90 + -0x1717);\n      pcVar13 = (pTVar10->name_)._M_dataplus._M_p;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)pcVar13 != &(pTVar10->name_).field_2) {\n        *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;\n        *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191034;\n        operator_delete(*(void **)((int)ppcVar15 + -0x10));\n      }\n      *(undefined4 *)((int)ppcVar15 + -0xc) = 0x30;\n      *(Task **)((int)ppcVar15 + -0x10) = pTVar10;\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191048;\n      operator_delete(*(void **)((int)ppcVar15 + -0x10),*(uint *)((int)ppcVar15 + -0xc));\n      pTVar10 = local_98;\n    }\n    else {\n      *(Task **)((int)ppcVar15 + -0x10) = pTVar10;\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1913d6;\n      (*(code *)ppuVar4)();\n      pTVar10 = local_98;\n    }\n    local_98 = pTVar10;\n    if (pTVar10 == (Task *)0x0) {\n      return true;\n    }\n  }" { (expression_statement "piVar3 = (int *)*local_94;" (assignment_expression "piVar3 = (int *)*local_94" identifier = (cast_expression "(int *)*local_94" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_94" * identifier))) ;) (if_statement "if ((piVar3[2] != 0) && ((*(byte *)(piVar3 + 5) & 1) != 0)) {\n      local_98 = (Task *)*piVar3;\n      if ((pTVar10->name_)._M_string_length == 0) {\n        ppuVar4 = (undefined **)pTVar10->_vptr_Task[5];\n        if (ppuVar4 == local_90 + -0xc8a2c) {\n          pcVar13 = pTVar10[1].name_._M_dataplus._M_p;\n          timer.start_time_.user = (long)local_a8;\n          pcVar11 = (pointer)0xffffffff;\n          if (pcVar13 != (pointer)0x0) {\n            *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;\n            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1910c6;\n            local_b0 = pcVar13;\n            sVar12 = strlen(*(char **)((int)ppcVar15 + -0x10));\n            pcVar11 = local_b0 + sVar12;\n            pcVar13 = local_b0;\n          }\n          *(undefined4 *)((int)ppcVar15 + -4) = 0;\n          *(pointer *)((int)ppcVar15 + -8) = pcVar11;\n          *(pointer *)((int)ppcVar15 + -0xc) = pcVar13;\n          *(Timer **)((int)ppcVar15 + -0x10) = local_9c;\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1910e0;\n          std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n          _M_construct<char_const*>();\n        }\n        else {\n          *(Task **)((int)ppcVar15 + -0xc) = pTVar10;\n          *(Timer **)((int)ppcVar15 + -0x10) = local_9c;\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1914bc;\n          (*(code *)ppuVar4)();\n          ppcVar15 = (pointer *)((int)ppcVar15 + -4);\n        }\n        pcVar13 = (pTVar10->name_)._M_dataplus._M_p;\n        if ((long *)timer.start_time_.user == local_a8) {\n          if (timer.start_time_.sys != 0) {\n            if (timer.start_time_.sys == 1) {\n              *pcVar13 = (char)timer.start_time_.wall;\n              pcVar13 = (pTVar10->name_)._M_dataplus._M_p;\n            }\n            else {\n              *(long *)((int)ppcVar15 + -8) = timer.start_time_.sys;\n              *(long **)((int)ppcVar15 + -0xc) = local_a8;\n              *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;\n              *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)ppcVar15 + -0x10),*(void **)((int)ppcVar15 + -0xc),\n                     *(size_t *)((int)ppcVar15 + -8));\n              pcVar13 = (pTVar10->name_)._M_dataplus._M_p;\n            }\n          }\n          (pTVar10->name_)._M_string_length = timer.start_time_.sys;\n          pcVar13[timer.start_time_.sys] = '\0';\n          sVar5 = timer.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               *)pcVar13 == &(pTVar10->name_).field_2) {\n            (pTVar10->name_)._M_dataplus._M_p = (pointer)timer.start_time_.user;\n            (pTVar10->name_)._M_string_length = timer.start_time_.sys;\n            (pTVar10->name_).field_2._M_allocated_capacity = timer.start_time_.wall;\n          }\n          else {\n            (pTVar10->name_)._M_dataplus._M_p = (pointer)timer.start_time_.user;\n            sVar5 = (pTVar10->name_).field_2._M_allocated_capacity;\n            (pTVar10->name_)._M_string_length = timer.start_time_.sys;\n            (pTVar10->name_).field_2._M_allocated_capacity = timer.start_time_.wall;\n            timer.start_time_.user = (long)pcVar13;\n            if (pcVar13 != (pointer)0x0) goto LAB_00191120;\n          }\n          timer.start_time_.user = (long)local_a8;\n          sVar5 = timer.start_time_.wall;\n        }\nLAB_00191120:\n        timer.start_time_.wall = sVar5;\n        timer.start_time_.sys = 0;\n        *(undefined1 *)timer.start_time_.user = 0;\n        if ((long *)timer.start_time_.user != local_a8) {\n          *(long *)((int)ppcVar15 + -0x10) = timer.start_time_.user;\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191144;\n          operator_delete(*(void **)((int)ppcVar15 + -0x10));\n        }\n      }\n      *(pointer *)((int)ppcVar15 + -4) = (pTVar10->name_)._M_dataplus._M_p;\n      *(int *)((int)ppcVar15 + -8) = thread_number;\n      *(int *)((int)ppcVar15 + -0xc) = (int)local_90 + -0xf4943;\n      *(Task **)((int)ppcVar15 + -0x10) = local_98;\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191165;\n      Errors::debug(*(Errors **)((int)ppcVar15 + -0x10),*(char **)((int)ppcVar15 + -0xc));\n    }" if (parenthesized_expression "((piVar3[2] != 0) && ((*(byte *)(piVar3 + 5) & 1) != 0))" ( (binary_expression "(piVar3[2] != 0) && ((*(byte *)(piVar3 + 5) & 1) != 0)" (parenthesized_expression "(piVar3[2] != 0)" ( (binary_expression "piVar3[2] != 0" (subscript_expression "piVar3[2]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "((*(byte *)(piVar3 + 5) & 1) != 0)" ( (binary_expression "(*(byte *)(piVar3 + 5) & 1) != 0" (parenthesized_expression "(*(byte *)(piVar3 + 5) & 1)" ( (binary_expression "*(byte *)(piVar3 + 5) & 1" (pointer_expression "*(byte *)(piVar3 + 5)" * (cast_expression "(byte *)(piVar3 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3 + 5)" ( (binary_expression "piVar3 + 5" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n      local_98 = (Task *)*piVar3;\n      if ((pTVar10->name_)._M_string_length == 0) {\n        ppuVar4 = (undefined **)pTVar10->_vptr_Task[5];\n        if (ppuVar4 == local_90 + -0xc8a2c) {\n          pcVar13 = pTVar10[1].name_._M_dataplus._M_p;\n          timer.start_time_.user = (long)local_a8;\n          pcVar11 = (pointer)0xffffffff;\n          if (pcVar13 != (pointer)0x0) {\n            *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;\n            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1910c6;\n            local_b0 = pcVar13;\n            sVar12 = strlen(*(char **)((int)ppcVar15 + -0x10));\n            pcVar11 = local_b0 + sVar12;\n            pcVar13 = local_b0;\n          }\n          *(undefined4 *)((int)ppcVar15 + -4) = 0;\n          *(pointer *)((int)ppcVar15 + -8) = pcVar11;\n          *(pointer *)((int)ppcVar15 + -0xc) = pcVar13;\n          *(Timer **)((int)ppcVar15 + -0x10) = local_9c;\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1910e0;\n          std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n          _M_construct<char_const*>();\n        }\n        else {\n          *(Task **)((int)ppcVar15 + -0xc) = pTVar10;\n          *(Timer **)((int)ppcVar15 + -0x10) = local_9c;\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1914bc;\n          (*(code *)ppuVar4)();\n          ppcVar15 = (pointer *)((int)ppcVar15 + -4);\n        }\n        pcVar13 = (pTVar10->name_)._M_dataplus._M_p;\n        if ((long *)timer.start_time_.user == local_a8) {\n          if (timer.start_time_.sys != 0) {\n            if (timer.start_time_.sys == 1) {\n              *pcVar13 = (char)timer.start_time_.wall;\n              pcVar13 = (pTVar10->name_)._M_dataplus._M_p;\n            }\n            else {\n              *(long *)((int)ppcVar15 + -8) = timer.start_time_.sys;\n              *(long **)((int)ppcVar15 + -0xc) = local_a8;\n              *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;\n              *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)ppcVar15 + -0x10),*(void **)((int)ppcVar15 + -0xc),\n                     *(size_t *)((int)ppcVar15 + -8));\n              pcVar13 = (pTVar10->name_)._M_dataplus._M_p;\n            }\n          }\n          (pTVar10->name_)._M_string_length = timer.start_time_.sys;\n          pcVar13[timer.start_time_.sys] = '\0';\n          sVar5 = timer.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               *)pcVar13 == &(pTVar10->name_).field_2) {\n            (pTVar10->name_)._M_dataplus._M_p = (pointer)timer.start_time_.user;\n            (pTVar10->name_)._M_string_length = timer.start_time_.sys;\n            (pTVar10->name_).field_2._M_allocated_capacity = timer.start_time_.wall;\n          }\n          else {\n            (pTVar10->name_)._M_dataplus._M_p = (pointer)timer.start_time_.user;\n            sVar5 = (pTVar10->name_).field_2._M_allocated_capacity;\n            (pTVar10->name_)._M_string_length = timer.start_time_.sys;\n            (pTVar10->name_).field_2._M_allocated_capacity = timer.start_time_.wall;\n            timer.start_time_.user = (long)pcVar13;\n            if (pcVar13 != (pointer)0x0) goto LAB_00191120;\n          }\n          timer.start_time_.user = (long)local_a8;\n          sVar5 = timer.start_time_.wall;\n        }\nLAB_00191120:\n        timer.start_time_.wall = sVar5;\n        timer.start_time_.sys = 0;\n        *(undefined1 *)timer.start_time_.user = 0;\n        if ((long *)timer.start_time_.user != local_a8) {\n          *(long *)((int)ppcVar15 + -0x10) = timer.start_time_.user;\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191144;\n          operator_delete(*(void **)((int)ppcVar15 + -0x10));\n        }\n      }\n      *(pointer *)((int)ppcVar15 + -4) = (pTVar10->name_)._M_dataplus._M_p;\n      *(int *)((int)ppcVar15 + -8) = thread_number;\n      *(int *)((int)ppcVar15 + -0xc) = (int)local_90 + -0xf4943;\n      *(Task **)((int)ppcVar15 + -0x10) = local_98;\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191165;\n      Errors::debug(*(Errors **)((int)ppcVar15 + -0x10),*(char **)((int)ppcVar15 + -0xc));\n    }" { (expression_statement "local_98 = (Task *)*piVar3;" (assignment_expression "local_98 = (Task *)*piVar3" identifier = (cast_expression "(Task *)*piVar3" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar3" * identifier))) ;) (if_statement "if ((pTVar10->name_)._M_string_length == 0) {\n        ppuVar4 = (undefined **)pTVar10->_vptr_Task[5];\n        if (ppuVar4 == local_90 + -0xc8a2c) {\n          pcVar13 = pTVar10[1].name_._M_dataplus._M_p;\n          timer.start_time_.user = (long)local_a8;\n          pcVar11 = (pointer)0xffffffff;\n          if (pcVar13 != (pointer)0x0) {\n            *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;\n            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1910c6;\n            local_b0 = pcVar13;\n            sVar12 = strlen(*(char **)((int)ppcVar15 + -0x10));\n            pcVar11 = local_b0 + sVar12;\n            pcVar13 = local_b0;\n          }\n          *(undefined4 *)((int)ppcVar15 + -4) = 0;\n          *(pointer *)((int)ppcVar15 + -8) = pcVar11;\n          *(pointer *)((int)ppcVar15 + -0xc) = pcVar13;\n          *(Timer **)((int)ppcVar15 + -0x10) = local_9c;\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1910e0;\n          std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n          _M_construct<char_const*>();\n        }\n        else {\n          *(Task **)((int)ppcVar15 + -0xc) = pTVar10;\n          *(Timer **)((int)ppcVar15 + -0x10) = local_9c;\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1914bc;\n          (*(code *)ppuVar4)();\n          ppcVar15 = (pointer *)((int)ppcVar15 + -4);\n        }\n        pcVar13 = (pTVar10->name_)._M_dataplus._M_p;\n        if ((long *)timer.start_time_.user == local_a8) {\n          if (timer.start_time_.sys != 0) {\n            if (timer.start_time_.sys == 1) {\n              *pcVar13 = (char)timer.start_time_.wall;\n              pcVar13 = (pTVar10->name_)._M_dataplus._M_p;\n            }\n            else {\n              *(long *)((int)ppcVar15 + -8) = timer.start_time_.sys;\n              *(long **)((int)ppcVar15 + -0xc) = local_a8;\n              *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;\n              *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)ppcVar15 + -0x10),*(void **)((int)ppcVar15 + -0xc),\n                     *(size_t *)((int)ppcVar15 + -8));\n              pcVar13 = (pTVar10->name_)._M_dataplus._M_p;\n            }\n          }\n          (pTVar10->name_)._M_string_length = timer.start_time_.sys;\n          pcVar13[timer.start_time_.sys] = '\0';\n          sVar5 = timer.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               *)pcVar13 == &(pTVar10->name_).field_2) {\n            (pTVar10->name_)._M_dataplus._M_p = (pointer)timer.start_time_.user;\n            (pTVar10->name_)._M_string_length = timer.start_time_.sys;\n            (pTVar10->name_).field_2._M_allocated_capacity = timer.start_time_.wall;\n          }\n          else {\n            (pTVar10->name_)._M_dataplus._M_p = (pointer)timer.start_time_.user;\n            sVar5 = (pTVar10->name_).field_2._M_allocated_capacity;\n            (pTVar10->name_)._M_string_length = timer.start_time_.sys;\n            (pTVar10->name_).field_2._M_allocated_capacity = timer.start_time_.wall;\n            timer.start_time_.user = (long)pcVar13;\n            if (pcVar13 != (pointer)0x0) goto LAB_00191120;\n          }\n          timer.start_time_.user = (long)local_a8;\n          sVar5 = timer.start_time_.wall;\n        }\nLAB_00191120:\n        timer.start_time_.wall = sVar5;\n        timer.start_time_.sys = 0;\n        *(undefined1 *)timer.start_time_.user = 0;\n        if ((long *)timer.start_time_.user != local_a8) {\n          *(long *)((int)ppcVar15 + -0x10) = timer.start_time_.user;\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191144;\n          operator_delete(*(void **)((int)ppcVar15 + -0x10));\n        }\n      }" if (parenthesized_expression "((pTVar10->name_)._M_string_length == 0)" ( (binary_expression "(pTVar10->name_)._M_string_length == 0" (field_expression "(pTVar10->name_)._M_string_length" (parenthesized_expression "(pTVar10->name_)" ( (field_expression "pTVar10->name_" identifier -> field_identifier) )) . field_identifier) == number_literal) )) (compound_statement "{\n        ppuVar4 = (undefined **)pTVar10->_vptr_Task[5];\n        if (ppuVar4 == local_90 + -0xc8a2c) {\n          pcVar13 = pTVar10[1].name_._M_dataplus._M_p;\n          timer.start_time_.user = (long)local_a8;\n          pcVar11 = (pointer)0xffffffff;\n          if (pcVar13 != (pointer)0x0) {\n            *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;\n            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1910c6;\n            local_b0 = pcVar13;\n            sVar12 = strlen(*(char **)((int)ppcVar15 + -0x10));\n            pcVar11 = local_b0 + sVar12;\n            pcVar13 = local_b0;\n          }\n          *(undefined4 *)((int)ppcVar15 + -4) = 0;\n          *(pointer *)((int)ppcVar15 + -8) = pcVar11;\n          *(pointer *)((int)ppcVar15 + -0xc) = pcVar13;\n          *(Timer **)((int)ppcVar15 + -0x10) = local_9c;\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1910e0;\n          std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n          _M_construct<char_const*>();\n        }\n        else {\n          *(Task **)((int)ppcVar15 + -0xc) = pTVar10;\n          *(Timer **)((int)ppcVar15 + -0x10) = local_9c;\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1914bc;\n          (*(code *)ppuVar4)();\n          ppcVar15 = (pointer *)((int)ppcVar15 + -4);\n        }\n        pcVar13 = (pTVar10->name_)._M_dataplus._M_p;\n        if ((long *)timer.start_time_.user == local_a8) {\n          if (timer.start_time_.sys != 0) {\n            if (timer.start_time_.sys == 1) {\n              *pcVar13 = (char)timer.start_time_.wall;\n              pcVar13 = (pTVar10->name_)._M_dataplus._M_p;\n            }\n            else {\n              *(long *)((int)ppcVar15 + -8) = timer.start_time_.sys;\n              *(long **)((int)ppcVar15 + -0xc) = local_a8;\n              *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;\n              *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)ppcVar15 + -0x10),*(void **)((int)ppcVar15 + -0xc),\n                     *(size_t *)((int)ppcVar15 + -8));\n              pcVar13 = (pTVar10->name_)._M_dataplus._M_p;\n            }\n          }\n          (pTVar10->name_)._M_string_length = timer.start_time_.sys;\n          pcVar13[timer.start_time_.sys] = '\0';\n          sVar5 = timer.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               *)pcVar13 == &(pTVar10->name_).field_2) {\n            (pTVar10->name_)._M_dataplus._M_p = (pointer)timer.start_time_.user;\n            (pTVar10->name_)._M_string_length = timer.start_time_.sys;\n            (pTVar10->name_).field_2._M_allocated_capacity = timer.start_time_.wall;\n          }\n          else {\n            (pTVar10->name_)._M_dataplus._M_p = (pointer)timer.start_time_.user;\n            sVar5 = (pTVar10->name_).field_2._M_allocated_capacity;\n            (pTVar10->name_)._M_string_length = timer.start_time_.sys;\n            (pTVar10->name_).field_2._M_allocated_capacity = timer.start_time_.wall;\n            timer.start_time_.user = (long)pcVar13;\n            if (pcVar13 != (pointer)0x0) goto LAB_00191120;\n          }\n          timer.start_time_.user = (long)local_a8;\n          sVar5 = timer.start_time_.wall;\n        }\nLAB_00191120:\n        timer.start_time_.wall = sVar5;\n        timer.start_time_.sys = 0;\n        *(undefined1 *)timer.start_time_.user = 0;\n        if ((long *)timer.start_time_.user != local_a8) {\n          *(long *)((int)ppcVar15 + -0x10) = timer.start_time_.user;\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191144;\n          operator_delete(*(void **)((int)ppcVar15 + -0x10));\n        }\n      }" { (expression_statement "ppuVar4 = (undefined **)pTVar10->_vptr_Task[5];" (assignment_expression "ppuVar4 = (undefined **)pTVar10->_vptr_Task[5]" identifier = (cast_expression "(undefined **)pTVar10->_vptr_Task[5]" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "pTVar10->_vptr_Task[5]" (field_expression "pTVar10->_vptr_Task" identifier -> field_identifier) [ number_literal ]))) ;) (if_statement "if (ppuVar4 == local_90 + -0xc8a2c) {\n          pcVar13 = pTVar10[1].name_._M_dataplus._M_p;\n          timer.start_time_.user = (long)local_a8;\n          pcVar11 = (pointer)0xffffffff;\n          if (pcVar13 != (pointer)0x0) {\n            *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;\n            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1910c6;\n            local_b0 = pcVar13;\n            sVar12 = strlen(*(char **)((int)ppcVar15 + -0x10));\n            pcVar11 = local_b0 + sVar12;\n            pcVar13 = local_b0;\n          }\n          *(undefined4 *)((int)ppcVar15 + -4) = 0;\n          *(pointer *)((int)ppcVar15 + -8) = pcVar11;\n          *(pointer *)((int)ppcVar15 + -0xc) = pcVar13;\n          *(Timer **)((int)ppcVar15 + -0x10) = local_9c;\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1910e0;\n          std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n          _M_construct<char_const*>();\n        }\n        else {\n          *(Task **)((int)ppcVar15 + -0xc) = pTVar10;\n          *(Timer **)((int)ppcVar15 + -0x10) = local_9c;\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1914bc;\n          (*(code *)ppuVar4)();\n          ppcVar15 = (pointer *)((int)ppcVar15 + -4);\n        }" if (parenthesized_expression "(ppuVar4 == local_90 + -0xc8a2c)" ( (binary_expression "ppuVar4 == local_90 + -0xc8a2c" identifier == (binary_expression "local_90 + -0xc8a2c" identifier + number_literal)) )) (compound_statement "{\n          pcVar13 = pTVar10[1].name_._M_dataplus._M_p;\n          timer.start_time_.user = (long)local_a8;\n          pcVar11 = (pointer)0xffffffff;\n          if (pcVar13 != (pointer)0x0) {\n            *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;\n            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1910c6;\n            local_b0 = pcVar13;\n            sVar12 = strlen(*(char **)((int)ppcVar15 + -0x10));\n            pcVar11 = local_b0 + sVar12;\n            pcVar13 = local_b0;\n          }\n          *(undefined4 *)((int)ppcVar15 + -4) = 0;\n          *(pointer *)((int)ppcVar15 + -8) = pcVar11;\n          *(pointer *)((int)ppcVar15 + -0xc) = pcVar13;\n          *(Timer **)((int)ppcVar15 + -0x10) = local_9c;\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1910e0;\n          std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n          _M_construct<char_const*>();\n        }" { (expression_statement "pcVar13 = pTVar10[1].name_._M_dataplus._M_p;" (assignment_expression "pcVar13 = pTVar10[1].name_._M_dataplus._M_p" identifier = (field_expression "pTVar10[1].name_._M_dataplus._M_p" (field_expression "pTVar10[1].name_._M_dataplus" (field_expression "pTVar10[1].name_" (subscript_expression "pTVar10[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "timer.start_time_.user = (long)local_a8;" (assignment_expression "timer.start_time_.user = (long)local_a8" (field_expression "timer.start_time_.user" (field_expression "timer.start_time_" identifier . field_identifier) . field_identifier) = (cast_expression "(long)local_a8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "pcVar11 = (pointer)0xffffffff;" (assignment_expression "pcVar11 = (pointer)0xffffffff" identifier = (cast_expression "(pointer)0xffffffff" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (if_statement "if (pcVar13 != (pointer)0x0) {\n            *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;\n            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1910c6;\n            local_b0 = pcVar13;\n            sVar12 = strlen(*(char **)((int)ppcVar15 + -0x10));\n            pcVar11 = local_b0 + sVar12;\n            pcVar13 = local_b0;\n          }" if (parenthesized_expression "(pcVar13 != (pointer)0x0)" ( (binary_expression "pcVar13 != (pointer)0x0" identifier != (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) (compound_statement "{\n            *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;\n            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1910c6;\n            local_b0 = pcVar13;\n            sVar12 = strlen(*(char **)((int)ppcVar15 + -0x10));\n            pcVar11 = local_b0 + sVar12;\n            pcVar13 = local_b0;\n          }" { (expression_statement "*(pointer *)((int)ppcVar15 + -0x10) = pcVar13;" (assignment_expression "*(pointer *)((int)ppcVar15 + -0x10) = pcVar13" (pointer_expression "*(pointer *)((int)ppcVar15 + -0x10)" * (cast_expression "(pointer *)((int)ppcVar15 + -0x10)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0x10)" ( (binary_expression "(int)ppcVar15 + -0x10" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x1910c6;" (assignment_expression "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x1910c6" (pointer_expression "*(undefined4 *)((int)ppcVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0x14)" ( (binary_expression "(int)ppcVar15 + -0x14" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_b0 = pcVar13;" (assignment_expression "local_b0 = pcVar13" identifier = identifier) ;) (expression_statement "sVar12 = strlen(*(char **)((int)ppcVar15 + -0x10));" (assignment_expression "sVar12 = strlen(*(char **)((int)ppcVar15 + -0x10))" identifier = (call_expression "strlen(*(char **)((int)ppcVar15 + -0x10))" identifier (argument_list "(*(char **)((int)ppcVar15 + -0x10))" ( (pointer_expression "*(char **)((int)ppcVar15 + -0x10)" * (cast_expression "(char **)((int)ppcVar15 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -0x10)" ( (binary_expression "(int)ppcVar15 + -0x10" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (expression_statement "pcVar11 = local_b0 + sVar12;" (assignment_expression "pcVar11 = local_b0 + sVar12" identifier = (binary_expression "local_b0 + sVar12" identifier + identifier)) ;) (expression_statement "pcVar13 = local_b0;" (assignment_expression "pcVar13 = local_b0" identifier = identifier) ;) })) (expression_statement "*(undefined4 *)((int)ppcVar15 + -4) = 0;" (assignment_expression "*(undefined4 *)((int)ppcVar15 + -4) = 0" (pointer_expression "*(undefined4 *)((int)ppcVar15 + -4)" * (cast_expression "(undefined4 *)((int)ppcVar15 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -4)" ( (binary_expression "(int)ppcVar15 + -4" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(pointer *)((int)ppcVar15 + -8) = pcVar11;" (assignment_expression "*(pointer *)((int)ppcVar15 + -8) = pcVar11" (pointer_expression "*(pointer *)((int)ppcVar15 + -8)" * (cast_expression "(pointer *)((int)ppcVar15 + -8)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -8)" ( (binary_expression "(int)ppcVar15 + -8" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(pointer *)((int)ppcVar15 + -0xc) = pcVar13;" (assignment_expression "*(pointer *)((int)ppcVar15 + -0xc) = pcVar13" (pointer_expression "*(pointer *)((int)ppcVar15 + -0xc)" * (cast_expression "(pointer *)((int)ppcVar15 + -0xc)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0xc)" ( (binary_expression "(int)ppcVar15 + -0xc" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Timer **)((int)ppcVar15 + -0x10) = local_9c;" (assignment_expression "*(Timer **)((int)ppcVar15 + -0x10) = local_9c" (pointer_expression "*(Timer **)((int)ppcVar15 + -0x10)" * (cast_expression "(Timer **)((int)ppcVar15 + -0x10)" ( (type_descriptor "Timer **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -0x10)" ( (binary_expression "(int)ppcVar15 + -0x10" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x1910e0;" (assignment_expression "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x1910e0" (pointer_expression "*(undefined4 *)((int)ppcVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0x14)" ( (binary_expression "(int)ppcVar15 + -0x14" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n          _M_construct<char_const*>();" statement_identifier (ERROR "::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>:" : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > :) : (expression_statement "_M_construct<char_const*>();" (binary_expression "_M_construct<char_const" identifier < identifier) (ERROR "*>()" * > ( )) ;)) }) (else_clause "else {\n          *(Task **)((int)ppcVar15 + -0xc) = pTVar10;\n          *(Timer **)((int)ppcVar15 + -0x10) = local_9c;\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1914bc;\n          (*(code *)ppuVar4)();\n          ppcVar15 = (pointer *)((int)ppcVar15 + -4);\n        }" else (compound_statement "{\n          *(Task **)((int)ppcVar15 + -0xc) = pTVar10;\n          *(Timer **)((int)ppcVar15 + -0x10) = local_9c;\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1914bc;\n          (*(code *)ppuVar4)();\n          ppcVar15 = (pointer *)((int)ppcVar15 + -4);\n        }" { (expression_statement "*(Task **)((int)ppcVar15 + -0xc) = pTVar10;" (assignment_expression "*(Task **)((int)ppcVar15 + -0xc) = pTVar10" (pointer_expression "*(Task **)((int)ppcVar15 + -0xc)" * (cast_expression "(Task **)((int)ppcVar15 + -0xc)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -0xc)" ( (binary_expression "(int)ppcVar15 + -0xc" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Timer **)((int)ppcVar15 + -0x10) = local_9c;" (assignment_expression "*(Timer **)((int)ppcVar15 + -0x10) = local_9c" (pointer_expression "*(Timer **)((int)ppcVar15 + -0x10)" * (cast_expression "(Timer **)((int)ppcVar15 + -0x10)" ( (type_descriptor "Timer **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -0x10)" ( (binary_expression "(int)ppcVar15 + -0x10" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x1914bc;" (assignment_expression "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x1914bc" (pointer_expression "*(undefined4 *)((int)ppcVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0x14)" ( (binary_expression "(int)ppcVar15 + -0x14" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*(code *)ppuVar4)();" (call_expression "(*(code *)ppuVar4)()" (parenthesized_expression "(*(code *)ppuVar4)" ( (pointer_expression "*(code *)ppuVar4" * (cast_expression "(code *)ppuVar4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "ppcVar15 = (pointer *)((int)ppcVar15 + -4);" (assignment_expression "ppcVar15 = (pointer *)((int)ppcVar15 + -4)" identifier = (cast_expression "(pointer *)((int)ppcVar15 + -4)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -4)" ( (binary_expression "(int)ppcVar15 + -4" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }))) (expression_statement "pcVar13 = (pTVar10->name_)._M_dataplus._M_p;" (assignment_expression "pcVar13 = (pTVar10->name_)._M_dataplus._M_p" identifier = (field_expression "(pTVar10->name_)._M_dataplus._M_p" (field_expression "(pTVar10->name_)._M_dataplus" (parenthesized_expression "(pTVar10->name_)" ( (field_expression "pTVar10->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if ((long *)timer.start_time_.user == local_a8) {\n          if (timer.start_time_.sys != 0) {\n            if (timer.start_time_.sys == 1) {\n              *pcVar13 = (char)timer.start_time_.wall;\n              pcVar13 = (pTVar10->name_)._M_dataplus._M_p;\n            }\n            else {\n              *(long *)((int)ppcVar15 + -8) = timer.start_time_.sys;\n              *(long **)((int)ppcVar15 + -0xc) = local_a8;\n              *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;\n              *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)ppcVar15 + -0x10),*(void **)((int)ppcVar15 + -0xc),\n                     *(size_t *)((int)ppcVar15 + -8));\n              pcVar13 = (pTVar10->name_)._M_dataplus._M_p;\n            }\n          }\n          (pTVar10->name_)._M_string_length = timer.start_time_.sys;\n          pcVar13[timer.start_time_.sys] = '\0';\n          sVar5 = timer.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               *)pcVar13 == &(pTVar10->name_).field_2) {\n            (pTVar10->name_)._M_dataplus._M_p = (pointer)timer.start_time_.user;\n            (pTVar10->name_)._M_string_length = timer.start_time_.sys;\n            (pTVar10->name_).field_2._M_allocated_capacity = timer.start_time_.wall;\n          }\n          else {\n            (pTVar10->name_)._M_dataplus._M_p = (pointer)timer.start_time_.user;\n            sVar5 = (pTVar10->name_).field_2._M_allocated_capacity;\n            (pTVar10->name_)._M_string_length = timer.start_time_.sys;\n            (pTVar10->name_).field_2._M_allocated_capacity = timer.start_time_.wall;\n            timer.start_time_.user = (long)pcVar13;\n            if (pcVar13 != (pointer)0x0) goto LAB_00191120;\n          }\n          timer.start_time_.user = (long)local_a8;\n          sVar5 = timer.start_time_.wall;\n        }" if (parenthesized_expression "((long *)timer.start_time_.user == local_a8)" ( (binary_expression "(long *)timer.start_time_.user == local_a8" (cast_expression "(long *)timer.start_time_.user" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (field_expression "timer.start_time_.user" (field_expression "timer.start_time_" identifier . field_identifier) . field_identifier)) == identifier) )) (compound_statement "{\n          if (timer.start_time_.sys != 0) {\n            if (timer.start_time_.sys == 1) {\n              *pcVar13 = (char)timer.start_time_.wall;\n              pcVar13 = (pTVar10->name_)._M_dataplus._M_p;\n            }\n            else {\n              *(long *)((int)ppcVar15 + -8) = timer.start_time_.sys;\n              *(long **)((int)ppcVar15 + -0xc) = local_a8;\n              *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;\n              *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)ppcVar15 + -0x10),*(void **)((int)ppcVar15 + -0xc),\n                     *(size_t *)((int)ppcVar15 + -8));\n              pcVar13 = (pTVar10->name_)._M_dataplus._M_p;\n            }\n          }\n          (pTVar10->name_)._M_string_length = timer.start_time_.sys;\n          pcVar13[timer.start_time_.sys] = '\0';\n          sVar5 = timer.start_time_.wall;\n        }" { (if_statement "if (timer.start_time_.sys != 0) {\n            if (timer.start_time_.sys == 1) {\n              *pcVar13 = (char)timer.start_time_.wall;\n              pcVar13 = (pTVar10->name_)._M_dataplus._M_p;\n            }\n            else {\n              *(long *)((int)ppcVar15 + -8) = timer.start_time_.sys;\n              *(long **)((int)ppcVar15 + -0xc) = local_a8;\n              *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;\n              *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)ppcVar15 + -0x10),*(void **)((int)ppcVar15 + -0xc),\n                     *(size_t *)((int)ppcVar15 + -8));\n              pcVar13 = (pTVar10->name_)._M_dataplus._M_p;\n            }\n          }" if (parenthesized_expression "(timer.start_time_.sys != 0)" ( (binary_expression "timer.start_time_.sys != 0" (field_expression "timer.start_time_.sys" (field_expression "timer.start_time_" identifier . field_identifier) . field_identifier) != number_literal) )) (compound_statement "{\n            if (timer.start_time_.sys == 1) {\n              *pcVar13 = (char)timer.start_time_.wall;\n              pcVar13 = (pTVar10->name_)._M_dataplus._M_p;\n            }\n            else {\n              *(long *)((int)ppcVar15 + -8) = timer.start_time_.sys;\n              *(long **)((int)ppcVar15 + -0xc) = local_a8;\n              *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;\n              *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)ppcVar15 + -0x10),*(void **)((int)ppcVar15 + -0xc),\n                     *(size_t *)((int)ppcVar15 + -8));\n              pcVar13 = (pTVar10->name_)._M_dataplus._M_p;\n            }\n          }" { (if_statement "if (timer.start_time_.sys == 1) {\n              *pcVar13 = (char)timer.start_time_.wall;\n              pcVar13 = (pTVar10->name_)._M_dataplus._M_p;\n            }\n            else {\n              *(long *)((int)ppcVar15 + -8) = timer.start_time_.sys;\n              *(long **)((int)ppcVar15 + -0xc) = local_a8;\n              *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;\n              *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)ppcVar15 + -0x10),*(void **)((int)ppcVar15 + -0xc),\n                     *(size_t *)((int)ppcVar15 + -8));\n              pcVar13 = (pTVar10->name_)._M_dataplus._M_p;\n            }" if (parenthesized_expression "(timer.start_time_.sys == 1)" ( (binary_expression "timer.start_time_.sys == 1" (field_expression "timer.start_time_.sys" (field_expression "timer.start_time_" identifier . field_identifier) . field_identifier) == number_literal) )) (compound_statement "{\n              *pcVar13 = (char)timer.start_time_.wall;\n              pcVar13 = (pTVar10->name_)._M_dataplus._M_p;\n            }" { (expression_statement "*pcVar13 = (char)timer.start_time_.wall;" (assignment_expression "*pcVar13 = (char)timer.start_time_.wall" (pointer_expression "*pcVar13" * identifier) = (cast_expression "(char)timer.start_time_.wall" ( (type_descriptor "char" primitive_type) ) (field_expression "timer.start_time_.wall" (field_expression "timer.start_time_" identifier . field_identifier) . field_identifier))) ;) (expression_statement "pcVar13 = (pTVar10->name_)._M_dataplus._M_p;" (assignment_expression "pcVar13 = (pTVar10->name_)._M_dataplus._M_p" identifier = (field_expression "(pTVar10->name_)._M_dataplus._M_p" (field_expression "(pTVar10->name_)._M_dataplus" (parenthesized_expression "(pTVar10->name_)" ( (field_expression "pTVar10->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) }) (else_clause "else {\n              *(long *)((int)ppcVar15 + -8) = timer.start_time_.sys;\n              *(long **)((int)ppcVar15 + -0xc) = local_a8;\n              *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;\n              *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)ppcVar15 + -0x10),*(void **)((int)ppcVar15 + -0xc),\n                     *(size_t *)((int)ppcVar15 + -8));\n              pcVar13 = (pTVar10->name_)._M_dataplus._M_p;\n            }" else (compound_statement "{\n              *(long *)((int)ppcVar15 + -8) = timer.start_time_.sys;\n              *(long **)((int)ppcVar15 + -0xc) = local_a8;\n              *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;\n              *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)ppcVar15 + -0x10),*(void **)((int)ppcVar15 + -0xc),\n                     *(size_t *)((int)ppcVar15 + -8));\n              pcVar13 = (pTVar10->name_)._M_dataplus._M_p;\n            }" { (expression_statement "*(long *)((int)ppcVar15 + -8) = timer.start_time_.sys;" (assignment_expression "*(long *)((int)ppcVar15 + -8) = timer.start_time_.sys" (pointer_expression "*(long *)((int)ppcVar15 + -8)" * (cast_expression "(long *)((int)ppcVar15 + -8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -8)" ( (binary_expression "(int)ppcVar15 + -8" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "timer.start_time_.sys" (field_expression "timer.start_time_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "*(long **)((int)ppcVar15 + -0xc) = local_a8;" (assignment_expression "*(long **)((int)ppcVar15 + -0xc) = local_a8" (pointer_expression "*(long **)((int)ppcVar15 + -0xc)" * (cast_expression "(long **)((int)ppcVar15 + -0xc)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -0xc)" ( (binary_expression "(int)ppcVar15 + -0xc" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(pointer *)((int)ppcVar15 + -0x10) = pcVar13;" (assignment_expression "*(pointer *)((int)ppcVar15 + -0x10) = pcVar13" (pointer_expression "*(pointer *)((int)ppcVar15 + -0x10)" * (cast_expression "(pointer *)((int)ppcVar15 + -0x10)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0x10)" ( (binary_expression "(int)ppcVar15 + -0x10" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x19146f;" (assignment_expression "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x19146f" (pointer_expression "*(undefined4 *)((int)ppcVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0x14)" ( (binary_expression "(int)ppcVar15 + -0x14" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "memcpy(*(void **)((int)ppcVar15 + -0x10),*(void **)((int)ppcVar15 + -0xc),\n                     *(size_t *)((int)ppcVar15 + -8));" (call_expression "memcpy(*(void **)((int)ppcVar15 + -0x10),*(void **)((int)ppcVar15 + -0xc),\n                     *(size_t *)((int)ppcVar15 + -8))" identifier (argument_list "(*(void **)((int)ppcVar15 + -0x10),*(void **)((int)ppcVar15 + -0xc),\n                     *(size_t *)((int)ppcVar15 + -8))" ( (pointer_expression "*(void **)((int)ppcVar15 + -0x10)" * (cast_expression "(void **)((int)ppcVar15 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -0x10)" ( (binary_expression "(int)ppcVar15 + -0x10" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(void **)((int)ppcVar15 + -0xc)" * (cast_expression "(void **)((int)ppcVar15 + -0xc)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -0xc)" ( (binary_expression "(int)ppcVar15 + -0xc" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)ppcVar15 + -8)" * (cast_expression "(size_t *)((int)ppcVar15 + -8)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -8)" ( (binary_expression "(int)ppcVar15 + -8" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "pcVar13 = (pTVar10->name_)._M_dataplus._M_p;" (assignment_expression "pcVar13 = (pTVar10->name_)._M_dataplus._M_p" identifier = (field_expression "(pTVar10->name_)._M_dataplus._M_p" (field_expression "(pTVar10->name_)._M_dataplus" (parenthesized_expression "(pTVar10->name_)" ( (field_expression "pTVar10->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) }))) })) (expression_statement "(pTVar10->name_)._M_string_length = timer.start_time_.sys;" (assignment_expression "(pTVar10->name_)._M_string_length = timer.start_time_.sys" (field_expression "(pTVar10->name_)._M_string_length" (parenthesized_expression "(pTVar10->name_)" ( (field_expression "pTVar10->name_" identifier -> field_identifier) )) . field_identifier) = (field_expression "timer.start_time_.sys" (field_expression "timer.start_time_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "pcVar13[timer.start_time_.sys] = '\0';" (assignment_expression "pcVar13[timer.start_time_.sys] = '\0'" (subscript_expression "pcVar13[timer.start_time_.sys]" identifier [ (field_expression "timer.start_time_.sys" (field_expression "timer.start_time_" identifier . field_identifier) . field_identifier) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "sVar5 = timer.start_time_.wall;" (assignment_expression "sVar5 = timer.start_time_.wall" identifier = (field_expression "timer.start_time_.wall" (field_expression "timer.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               *)pcVar13 == &(pTVar10->name_).field_2) {\n            (pTVar10->name_)._M_dataplus._M_p = (pointer)timer.start_time_.user;\n            (pTVar10->name_)._M_string_length = timer.start_time_.sys;\n            (pTVar10->name_).field_2._M_allocated_capacity = timer.start_time_.wall;\n          }\n          else {\n            (pTVar10->name_)._M_dataplus._M_p = (pointer)timer.start_time_.user;\n            sVar5 = (pTVar10->name_).field_2._M_allocated_capacity;\n            (pTVar10->name_)._M_string_length = timer.start_time_.sys;\n            (pTVar10->name_).field_2._M_allocated_capacity = timer.start_time_.wall;\n            timer.start_time_.user = (long)pcVar13;\n            if (pcVar13 != (pointer)0x0) goto LAB_00191120;\n          }\n          timer.start_time_.user = (long)local_a8;\n          sVar5 = timer.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               *)pcVar13 == &(pTVar10->name_).field_2) {\n            (pTVar10->name_)._M_dataplus._M_p = (pointer)timer.start_time_.user;\n            (pTVar10->name_)._M_string_length = timer.start_time_.sys;\n            (pTVar10->name_).field_2._M_allocated_capacity = timer.start_time_.wall;\n          }\n          else {\n            (pTVar10->name_)._M_dataplus._M_p = (pointer)timer.start_time_.user;\n            sVar5 = (pTVar10->name_).field_2._M_allocated_capacity;\n            (pTVar10->name_)._M_string_length = timer.start_time_.sys;\n            (pTVar10->name_).field_2._M_allocated_capacity = timer.start_time_.wall;\n            timer.start_time_.user = (long)pcVar13;\n            if (pcVar13 != (pointer)0x0) goto LAB_00191120;\n          }\n          timer.start_time_.user = (long)local_a8;\n          sVar5 = timer.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               *)pcVar13 == &(pTVar10->name_).field_2) {\n            (pTVar10->name_)._M_dataplus._M_p = (pointer)timer.start_time_.user;\n            (pTVar10->name_)._M_string_length = timer.start_time_.sys;\n            (pTVar10->name_).field_2._M_allocated_capacity = timer.start_time_.wall;\n          }\n          else {\n            (pTVar10->name_)._M_dataplus._M_p = (pointer)timer.start_time_.user;\n            sVar5 = (pTVar10->name_).field_2._M_allocated_capacity;\n            (pTVar10->name_)._M_string_length = timer.start_time_.sys;\n            (pTVar10->name_).field_2._M_allocated_capacity = timer.start_time_.wall;\n            timer.start_time_.user = (long)pcVar13;\n            if (pcVar13 != (pointer)0x0) goto LAB_00191120;\n          }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)pcVar13 == &(pTVar10->name_).field_2)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n               *)pcVar13 == &(pTVar10->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               *)pcVar13 == &(pTVar10->name_).field_2" (binary_expression "allocator<char>_>_9\n               *)pcVar13" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n               *)pcVar13" identifier * (ERROR ")" )) identifier)) == (pointer_expression "&(pTVar10->name_).field_2" & (field_expression "(pTVar10->name_).field_2" (parenthesized_expression "(pTVar10->name_)" ( (field_expression "pTVar10->name_" identifier -> field_identifier) )) . field_identifier))) )) )) (compound_statement "{\n            (pTVar10->name_)._M_dataplus._M_p = (pointer)timer.start_time_.user;\n            (pTVar10->name_)._M_string_length = timer.start_time_.sys;\n            (pTVar10->name_).field_2._M_allocated_capacity = timer.start_time_.wall;\n          }" { (expression_statement "(pTVar10->name_)._M_dataplus._M_p = (pointer)timer.start_time_.user;" (assignment_expression "(pTVar10->name_)._M_dataplus._M_p = (pointer)timer.start_time_.user" (field_expression "(pTVar10->name_)._M_dataplus._M_p" (field_expression "(pTVar10->name_)._M_dataplus" (parenthesized_expression "(pTVar10->name_)" ( (field_expression "pTVar10->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(pointer)timer.start_time_.user" ( (type_descriptor "pointer" type_identifier) ) (field_expression "timer.start_time_.user" (field_expression "timer.start_time_" identifier . field_identifier) . field_identifier))) ;) (expression_statement "(pTVar10->name_)._M_string_length = timer.start_time_.sys;" (assignment_expression "(pTVar10->name_)._M_string_length = timer.start_time_.sys" (field_expression "(pTVar10->name_)._M_string_length" (parenthesized_expression "(pTVar10->name_)" ( (field_expression "pTVar10->name_" identifier -> field_identifier) )) . field_identifier) = (field_expression "timer.start_time_.sys" (field_expression "timer.start_time_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "(pTVar10->name_).field_2._M_allocated_capacity = timer.start_time_.wall;" (assignment_expression "(pTVar10->name_).field_2._M_allocated_capacity = timer.start_time_.wall" (field_expression "(pTVar10->name_).field_2._M_allocated_capacity" (field_expression "(pTVar10->name_).field_2" (parenthesized_expression "(pTVar10->name_)" ( (field_expression "pTVar10->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (field_expression "timer.start_time_.wall" (field_expression "timer.start_time_" identifier . field_identifier) . field_identifier)) ;) }) (else_clause "else {\n            (pTVar10->name_)._M_dataplus._M_p = (pointer)timer.start_time_.user;\n            sVar5 = (pTVar10->name_).field_2._M_allocated_capacity;\n            (pTVar10->name_)._M_string_length = timer.start_time_.sys;\n            (pTVar10->name_).field_2._M_allocated_capacity = timer.start_time_.wall;\n            timer.start_time_.user = (long)pcVar13;\n            if (pcVar13 != (pointer)0x0) goto LAB_00191120;\n          }" else (compound_statement "{\n            (pTVar10->name_)._M_dataplus._M_p = (pointer)timer.start_time_.user;\n            sVar5 = (pTVar10->name_).field_2._M_allocated_capacity;\n            (pTVar10->name_)._M_string_length = timer.start_time_.sys;\n            (pTVar10->name_).field_2._M_allocated_capacity = timer.start_time_.wall;\n            timer.start_time_.user = (long)pcVar13;\n            if (pcVar13 != (pointer)0x0) goto LAB_00191120;\n          }" { (expression_statement "(pTVar10->name_)._M_dataplus._M_p = (pointer)timer.start_time_.user;" (assignment_expression "(pTVar10->name_)._M_dataplus._M_p = (pointer)timer.start_time_.user" (field_expression "(pTVar10->name_)._M_dataplus._M_p" (field_expression "(pTVar10->name_)._M_dataplus" (parenthesized_expression "(pTVar10->name_)" ( (field_expression "pTVar10->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(pointer)timer.start_time_.user" ( (type_descriptor "pointer" type_identifier) ) (field_expression "timer.start_time_.user" (field_expression "timer.start_time_" identifier . field_identifier) . field_identifier))) ;) (expression_statement "sVar5 = (pTVar10->name_).field_2._M_allocated_capacity;" (assignment_expression "sVar5 = (pTVar10->name_).field_2._M_allocated_capacity" identifier = (field_expression "(pTVar10->name_).field_2._M_allocated_capacity" (field_expression "(pTVar10->name_).field_2" (parenthesized_expression "(pTVar10->name_)" ( (field_expression "pTVar10->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "(pTVar10->name_)._M_string_length = timer.start_time_.sys;" (assignment_expression "(pTVar10->name_)._M_string_length = timer.start_time_.sys" (field_expression "(pTVar10->name_)._M_string_length" (parenthesized_expression "(pTVar10->name_)" ( (field_expression "pTVar10->name_" identifier -> field_identifier) )) . field_identifier) = (field_expression "timer.start_time_.sys" (field_expression "timer.start_time_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "(pTVar10->name_).field_2._M_allocated_capacity = timer.start_time_.wall;" (assignment_expression "(pTVar10->name_).field_2._M_allocated_capacity = timer.start_time_.wall" (field_expression "(pTVar10->name_).field_2._M_allocated_capacity" (field_expression "(pTVar10->name_).field_2" (parenthesized_expression "(pTVar10->name_)" ( (field_expression "pTVar10->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (field_expression "timer.start_time_.wall" (field_expression "timer.start_time_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "timer.start_time_.user = (long)pcVar13;" (assignment_expression "timer.start_time_.user = (long)pcVar13" (field_expression "timer.start_time_.user" (field_expression "timer.start_time_" identifier . field_identifier) . field_identifier) = (cast_expression "(long)pcVar13" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (if_statement "if (pcVar13 != (pointer)0x0) goto LAB_00191120;" if (parenthesized_expression "(pcVar13 != (pointer)0x0)" ( (binary_expression "pcVar13 != (pointer)0x0" identifier != (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) (goto_statement "goto LAB_00191120;" goto statement_identifier ;)) }))) (expression_statement "timer.start_time_.user = (long)local_a8;" (assignment_expression "timer.start_time_.user = (long)local_a8" (field_expression "timer.start_time_.user" (field_expression "timer.start_time_" identifier . field_identifier) . field_identifier) = (cast_expression "(long)local_a8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "sVar5 = timer.start_time_.wall;" (assignment_expression "sVar5 = timer.start_time_.wall" identifier = (field_expression "timer.start_time_.wall" (field_expression "timer.start_time_" identifier . field_identifier) . field_identifier)) ;) }))) (labeled_statement "LAB_00191120:\n        timer.start_time_.wall = sVar5;" statement_identifier : (expression_statement "timer.start_time_.wall = sVar5;" (assignment_expression "timer.start_time_.wall = sVar5" (field_expression "timer.start_time_.wall" (field_expression "timer.start_time_" identifier . field_identifier) . field_identifier) = identifier) ;)) (expression_statement "timer.start_time_.sys = 0;" (assignment_expression "timer.start_time_.sys = 0" (field_expression "timer.start_time_.sys" (field_expression "timer.start_time_" identifier . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "*(undefined1 *)timer.start_time_.user = 0;" (assignment_expression "*(undefined1 *)timer.start_time_.user = 0" (pointer_expression "*(undefined1 *)timer.start_time_.user" * (cast_expression "(undefined1 *)timer.start_time_.user" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "timer.start_time_.user" (field_expression "timer.start_time_" identifier . field_identifier) . field_identifier))) = number_literal) ;) (if_statement "if ((long *)timer.start_time_.user != local_a8) {\n          *(long *)((int)ppcVar15 + -0x10) = timer.start_time_.user;\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191144;\n          operator_delete(*(void **)((int)ppcVar15 + -0x10));\n        }" if (parenthesized_expression "((long *)timer.start_time_.user != local_a8)" ( (binary_expression "(long *)timer.start_time_.user != local_a8" (cast_expression "(long *)timer.start_time_.user" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (field_expression "timer.start_time_.user" (field_expression "timer.start_time_" identifier . field_identifier) . field_identifier)) != identifier) )) (compound_statement "{\n          *(long *)((int)ppcVar15 + -0x10) = timer.start_time_.user;\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191144;\n          operator_delete(*(void **)((int)ppcVar15 + -0x10));\n        }" { (expression_statement "*(long *)((int)ppcVar15 + -0x10) = timer.start_time_.user;" (assignment_expression "*(long *)((int)ppcVar15 + -0x10) = timer.start_time_.user" (pointer_expression "*(long *)((int)ppcVar15 + -0x10)" * (cast_expression "(long *)((int)ppcVar15 + -0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0x10)" ( (binary_expression "(int)ppcVar15 + -0x10" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "timer.start_time_.user" (field_expression "timer.start_time_" identifier . field_identifier) . field_identifier)) ;) (expression_statement "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x191144;" (assignment_expression "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x191144" (pointer_expression "*(undefined4 *)((int)ppcVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0x14)" ( (binary_expression "(int)ppcVar15 + -0x14" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "operator_delete(*(void **)((int)ppcVar15 + -0x10));" (call_expression "operator_delete(*(void **)((int)ppcVar15 + -0x10))" identifier (argument_list "(*(void **)((int)ppcVar15 + -0x10))" ( (pointer_expression "*(void **)((int)ppcVar15 + -0x10)" * (cast_expression "(void **)((int)ppcVar15 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -0x10)" ( (binary_expression "(int)ppcVar15 + -0x10" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) })) (expression_statement "*(pointer *)((int)ppcVar15 + -4) = (pTVar10->name_)._M_dataplus._M_p;" (assignment_expression "*(pointer *)((int)ppcVar15 + -4) = (pTVar10->name_)._M_dataplus._M_p" (pointer_expression "*(pointer *)((int)ppcVar15 + -4)" * (cast_expression "(pointer *)((int)ppcVar15 + -4)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -4)" ( (binary_expression "(int)ppcVar15 + -4" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "(pTVar10->name_)._M_dataplus._M_p" (field_expression "(pTVar10->name_)._M_dataplus" (parenthesized_expression "(pTVar10->name_)" ( (field_expression "pTVar10->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "*(int *)((int)ppcVar15 + -8) = thread_number;" (assignment_expression "*(int *)((int)ppcVar15 + -8) = thread_number" (pointer_expression "*(int *)((int)ppcVar15 + -8)" * (cast_expression "(int *)((int)ppcVar15 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -8)" ( (binary_expression "(int)ppcVar15 + -8" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)ppcVar15 + -0xc) = (int)local_90 + -0xf4943;" (assignment_expression "*(int *)((int)ppcVar15 + -0xc) = (int)local_90 + -0xf4943" (pointer_expression "*(int *)((int)ppcVar15 + -0xc)" * (cast_expression "(int *)((int)ppcVar15 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0xc)" ( (binary_expression "(int)ppcVar15 + -0xc" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_90 + -0xf4943" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(Task **)((int)ppcVar15 + -0x10) = local_98;" (assignment_expression "*(Task **)((int)ppcVar15 + -0x10) = local_98" (pointer_expression "*(Task **)((int)ppcVar15 + -0x10)" * (cast_expression "(Task **)((int)ppcVar15 + -0x10)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -0x10)" ( (binary_expression "(int)ppcVar15 + -0x10" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x191165;" (assignment_expression "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x191165" (pointer_expression "*(undefined4 *)((int)ppcVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0x14)" ( (binary_expression "(int)ppcVar15 + -0x14" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "Errors::debug(*(Errors **)((int)ppcVar15 + -0x10),*(char **)((int)ppcVar15 + -0xc));" statement_identifier : (ERROR ":" :) (expression_statement "debug(*(Errors **)((int)ppcVar15 + -0x10),*(char **)((int)ppcVar15 + -0xc));" (call_expression "debug(*(Errors **)((int)ppcVar15 + -0x10),*(char **)((int)ppcVar15 + -0xc))" identifier (argument_list "(*(Errors **)((int)ppcVar15 + -0x10),*(char **)((int)ppcVar15 + -0xc))" ( (pointer_expression "*(Errors **)((int)ppcVar15 + -0x10)" * (cast_expression "(Errors **)((int)ppcVar15 + -0x10)" ( (type_descriptor "Errors **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -0x10)" ( (binary_expression "(int)ppcVar15 + -0x10" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)ppcVar15 + -0xc)" * (cast_expression "(char **)((int)ppcVar15 + -0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -0xc)" ( (binary_expression "(int)ppcVar15 + -0xc" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) })) (expression_statement "*(Timer **)((int)ppcVar15 + -0x10) = local_9c;" (assignment_expression "*(Timer **)((int)ppcVar15 + -0x10) = local_9c" (pointer_expression "*(Timer **)((int)ppcVar15 + -0x10)" * (cast_expression "(Timer **)((int)ppcVar15 + -0x10)" ( (type_descriptor "Timer **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -0x10)" ( (binary_expression "(int)ppcVar15 + -0x10" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x19117c;" (assignment_expression "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x19117c" (pointer_expression "*(undefined4 *)((int)ppcVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0x14)" ( (binary_expression "(int)ppcVar15 + -0x14" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "Timer::Timer(*(Timer **)((int)ppcVar15 + -0x10));" statement_identifier : (ERROR ":" :) (expression_statement "Timer(*(Timer **)((int)ppcVar15 + -0x10));" (call_expression "Timer(*(Timer **)((int)ppcVar15 + -0x10))" identifier (argument_list "(*(Timer **)((int)ppcVar15 + -0x10))" ( (pointer_expression "*(Timer **)((int)ppcVar15 + -0x10)" * (cast_expression "(Timer **)((int)ppcVar15 + -0x10)" ( (type_descriptor "Timer **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -0x10)" ( (binary_expression "(int)ppcVar15 + -0x10" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) (if_statement "if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {\n      *(Timer **)((int)ppcVar15 + -0x10) = local_9c;\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1911a8;\n      Timer::start(*(Timer **)((int)ppcVar15 + -0x10));\n    }" if (parenthesized_expression "((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0))" ( (binary_expression "(*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)" (parenthesized_expression "(*(int *)(*local_94 + 8) != 0)" ( (binary_expression "*(int *)(*local_94 + 8) != 0" (pointer_expression "*(int *)(*local_94 + 8)" * (cast_expression "(int *)(*local_94 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_94 + 8)" ( (binary_expression "*local_94 + 8" (pointer_expression "*local_94" * identifier) + number_literal) )))) != number_literal) )) && (parenthesized_expression "(((*local_94)[0x14] & 1) != 0)" ( (binary_expression "((*local_94)[0x14] & 1) != 0" (parenthesized_expression "((*local_94)[0x14] & 1)" ( (binary_expression "(*local_94)[0x14] & 1" (subscript_expression "(*local_94)[0x14]" (parenthesized_expression "(*local_94)" ( (pointer_expression "*local_94" * identifier) )) [ number_literal ]) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n      *(Timer **)((int)ppcVar15 + -0x10) = local_9c;\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1911a8;\n      Timer::start(*(Timer **)((int)ppcVar15 + -0x10));\n    }" { (expression_statement "*(Timer **)((int)ppcVar15 + -0x10) = local_9c;" (assignment_expression "*(Timer **)((int)ppcVar15 + -0x10) = local_9c" (pointer_expression "*(Timer **)((int)ppcVar15 + -0x10)" * (cast_expression "(Timer **)((int)ppcVar15 + -0x10)" ( (type_descriptor "Timer **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -0x10)" ( (binary_expression "(int)ppcVar15 + -0x10" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x1911a8;" (assignment_expression "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x1911a8" (pointer_expression "*(undefined4 *)((int)ppcVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0x14)" ( (binary_expression "(int)ppcVar15 + -0x14" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "Timer::start(*(Timer **)((int)ppcVar15 + -0x10));" statement_identifier : (ERROR ":" :) (expression_statement "start(*(Timer **)((int)ppcVar15 + -0x10));" (call_expression "start(*(Timer **)((int)ppcVar15 + -0x10))" identifier (argument_list "(*(Timer **)((int)ppcVar15 + -0x10))" ( (pointer_expression "*(Timer **)((int)ppcVar15 + -0x10)" * (cast_expression "(Timer **)((int)ppcVar15 + -0x10)" ( (type_descriptor "Timer **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -0x10)" ( (binary_expression "(int)ppcVar15 + -0x10" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) })) (expression_statement "ppuVar4 = (undefined **)pTVar10->_vptr_Task[4];" (assignment_expression "ppuVar4 = (undefined **)pTVar10->_vptr_Task[4]" identifier = (cast_expression "(undefined **)pTVar10->_vptr_Task[4]" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "pTVar10->_vptr_Task[4]" (field_expression "pTVar10->_vptr_Task" identifier -> field_identifier) [ number_literal ]))) ;) (if_statement "if (ppuVar4 == local_a4) {\n      pp_Var6 = pTVar10[1]._vptr_Task;\n      p_Var7 = *pp_Var6;\n      *(Task **)((int)ppcVar15 + -8) = pTVar10;\n      *(Workqueue **)((int)ppcVar15 + -0xc) = this;\n      *(_func_int_varargs ***)((int)ppcVar15 + -0x10) = pp_Var6;\n      pcVar8 = *(code **)(p_Var7 + 8);\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1911ca;\n      (*pcVar8)();\n    }\n    else {\n      *(Workqueue **)((int)ppcVar15 + -0xc) = this;\n      *(Task **)((int)ppcVar15 + -0x10) = pTVar10;\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1913ff;\n      (*(code *)ppuVar4)();\n    }" if (parenthesized_expression "(ppuVar4 == local_a4)" ( (binary_expression "ppuVar4 == local_a4" identifier == identifier) )) (compound_statement "{\n      pp_Var6 = pTVar10[1]._vptr_Task;\n      p_Var7 = *pp_Var6;\n      *(Task **)((int)ppcVar15 + -8) = pTVar10;\n      *(Workqueue **)((int)ppcVar15 + -0xc) = this;\n      *(_func_int_varargs ***)((int)ppcVar15 + -0x10) = pp_Var6;\n      pcVar8 = *(code **)(p_Var7 + 8);\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1911ca;\n      (*pcVar8)();\n    }" { (expression_statement "pp_Var6 = pTVar10[1]._vptr_Task;" (assignment_expression "pp_Var6 = pTVar10[1]._vptr_Task" identifier = (field_expression "pTVar10[1]._vptr_Task" (subscript_expression "pTVar10[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "p_Var7 = *pp_Var6;" (assignment_expression "p_Var7 = *pp_Var6" identifier = (pointer_expression "*pp_Var6" * identifier)) ;) (expression_statement "*(Task **)((int)ppcVar15 + -8) = pTVar10;" (assignment_expression "*(Task **)((int)ppcVar15 + -8) = pTVar10" (pointer_expression "*(Task **)((int)ppcVar15 + -8)" * (cast_expression "(Task **)((int)ppcVar15 + -8)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -8)" ( (binary_expression "(int)ppcVar15 + -8" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Workqueue **)((int)ppcVar15 + -0xc) = this;" (assignment_expression "*(Workqueue **)((int)ppcVar15 + -0xc) = this" (pointer_expression "*(Workqueue **)((int)ppcVar15 + -0xc)" * (cast_expression "(Workqueue **)((int)ppcVar15 + -0xc)" ( (type_descriptor "Workqueue **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -0xc)" ( (binary_expression "(int)ppcVar15 + -0xc" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(_func_int_varargs ***)((int)ppcVar15 + -0x10) = pp_Var6;" (assignment_expression "*(_func_int_varargs ***)((int)ppcVar15 + -0x10) = pp_Var6" (pointer_expression "*(_func_int_varargs ***)((int)ppcVar15 + -0x10)" * (cast_expression "(_func_int_varargs ***)((int)ppcVar15 + -0x10)" ( (type_descriptor "_func_int_varargs ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar15 + -0x10)" ( (binary_expression "(int)ppcVar15 + -0x10" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar8 = *(code **)(p_Var7 + 8);" (assignment_expression "pcVar8 = *(code **)(p_Var7 + 8)" identifier = (pointer_expression "*(code **)(p_Var7 + 8)" * (cast_expression "(code **)(p_Var7 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(p_Var7 + 8)" ( (binary_expression "p_Var7 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x1911ca;" (assignment_expression "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x1911ca" (pointer_expression "*(undefined4 *)((int)ppcVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0x14)" ( (binary_expression "(int)ppcVar15 + -0x14" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar8)();" (call_expression "(*pcVar8)()" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "()" ( ))) ;) }) (else_clause "else {\n      *(Workqueue **)((int)ppcVar15 + -0xc) = this;\n      *(Task **)((int)ppcVar15 + -0x10) = pTVar10;\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1913ff;\n      (*(code *)ppuVar4)();\n    }" else (compound_statement "{\n      *(Workqueue **)((int)ppcVar15 + -0xc) = this;\n      *(Task **)((int)ppcVar15 + -0x10) = pTVar10;\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1913ff;\n      (*(code *)ppuVar4)();\n    }" { (expression_statement "*(Workqueue **)((int)ppcVar15 + -0xc) = this;" (assignment_expression "*(Workqueue **)((int)ppcVar15 + -0xc) = this" (pointer_expression "*(Workqueue **)((int)ppcVar15 + -0xc)" * (cast_expression "(Workqueue **)((int)ppcVar15 + -0xc)" ( (type_descriptor "Workqueue **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -0xc)" ( (binary_expression "(int)ppcVar15 + -0xc" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Task **)((int)ppcVar15 + -0x10) = pTVar10;" (assignment_expression "*(Task **)((int)ppcVar15 + -0x10) = pTVar10" (pointer_expression "*(Task **)((int)ppcVar15 + -0x10)" * (cast_expression "(Task **)((int)ppcVar15 + -0x10)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -0x10)" ( (binary_expression "(int)ppcVar15 + -0x10" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x1913ff;" (assignment_expression "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x1913ff" (pointer_expression "*(undefined4 *)((int)ppcVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0x14)" ( (binary_expression "(int)ppcVar15 + -0x14" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*(code *)ppuVar4)();" (call_expression "(*(code *)ppuVar4)()" (parenthesized_expression "(*(code *)ppuVar4)" ( (pointer_expression "*(code *)ppuVar4" * (cast_expression "(code *)ppuVar4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) }))) (if_statement "if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {\n      *(Timer **)((int)ppcVar15 + -0xc) = local_9c;\n      *(int **)((int)ppcVar15 + -0x10) = &local_84;\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191202;\n      Timer::get_elapsed_time(*(Timer **)((int)ppcVar15 + -0xc));\n      puVar9 = (undefined4 *)*local_94;\n      if ((puVar9[2] != 0) && ((*(byte *)(puVar9 + 5) & 1) != 0)) {\n        local_b8 = *puVar9;\n        local_bc = local_7c / 1000;\n        local_98 = (Task *)((local_7c % 1000) * 1000);\n        local_c0 = local_80 / 1000;\n        local_b0 = (pointer)((local_80 % 1000) * 1000);\n        local_c4 = local_84 / 1000;\n        local_b4 = (local_84 % 1000) * 1000;\n        if ((pTVar10->name_)._M_string_length == 0) {\n          ppuVar4 = (undefined **)pTVar10->_vptr_Task[5];\n          if (ppuVar4 == local_90 + -0xc8a2c) {\n            pcVar13 = pTVar10[1].name_._M_dataplus._M_p;\n            local_c8 = local_5c;\n            pcVar11 = (pointer)0xffffffff;\n            local_64._M_p = (pointer)local_c8;\n            if (pcVar13 != (pointer)0x0) {\n              *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;\n              *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1912ff;\n              local_cc = pcVar13;\n              sVar12 = strlen(*(char **)((int)ppcVar15 + -0x10));\n              pcVar11 = local_cc + sVar12;\n              pcVar13 = local_cc;\n            }\n            *(undefined4 *)((int)ppcVar15 + -4) = 0;\n            *(pointer *)((int)ppcVar15 + -8) = pcVar11;\n            *(pointer *)((int)ppcVar15 + -0xc) = pcVar13;\n            *(_Alloc_hider **)((int)ppcVar15 + -0x10) = &local_64;\n            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191317;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char_const*>();\n          }\n          else {\n            *(Task **)((int)ppcVar15 + -0xc) = pTVar10;\n            *(_Alloc_hider **)((int)ppcVar15 + -0x10) = &local_64;\n            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191579;\n            (*(code *)ppuVar4)();\n            local_c8 = local_5c;\n            ppcVar15 = (pointer *)((int)ppcVar15 + -4);\n          }\n          _Var14._M_p = (pTVar10->name_)._M_dataplus._M_p;\n          if ((size_type *)local_64._M_p == local_c8) {\n            if (local_60 != 0) {\n              if (local_60 == 1) {\n                *_Var14._M_p = (char)local_5c[0];\n                _Var14._M_p = (pTVar10->name_)._M_dataplus._M_p;\n              }\n              else {\n                *(size_type *)((int)ppcVar15 + -8) = local_60;\n                *(size_type **)((int)ppcVar15 + -0xc) = local_c8;\n                *(pointer *)((int)ppcVar15 + -0x10) = _Var14._M_p;\n                *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19154f;\n                memcpy(*(void **)((int)ppcVar15 + -0x10),*(void **)((int)ppcVar15 + -0xc),\n                       *(size_t *)((int)ppcVar15 + -8));\n                _Var14._M_p = (pTVar10->name_)._M_dataplus._M_p;\n              }\n            }\n            (pTVar10->name_)._M_string_length = local_60;\n            *(_Var14._M_p + local_60) = '\0';\n            _Var14._M_p = local_64._M_p;\n            sVar5 = local_5c[0];\n          }\n          else {\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)_Var14._M_p == &(pTVar10->name_).field_2) {\n              (pTVar10->name_)._M_dataplus._M_p = local_64._M_p;\n              (pTVar10->name_)._M_string_length = local_60;\n              (pTVar10->name_).field_2._M_allocated_capacity = local_5c[0];\n            }\n            else {\n              (pTVar10->name_)._M_dataplus._M_p = local_64._M_p;\n              sVar5 = (pTVar10->name_).field_2._M_allocated_capacity;\n              (pTVar10->name_)._M_string_length = local_60;\n              (pTVar10->name_).field_2._M_allocated_capacity = local_5c[0];\n              local_64._M_p = _Var14._M_p;\n              if ((size_type *)_Var14._M_p != (size_type *)0x0) goto LAB_00191357;\n            }\n            local_64._M_p = (pointer)local_c8;\n            local_c8 = local_5c;\n            _Var14._M_p = (pointer)local_c8;\n            sVar5 = local_5c[0];\n          }\nLAB_00191357:\n          local_5c[0] = sVar5;\n          local_60 = 0;\n          *_Var14._M_p = '\0';\n          if ((size_type *)local_64._M_p != local_c8) {\n            *(pointer *)((int)ppcVar15 + -0x10) = local_64._M_p;\n            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19137b;\n            operator_delete(*(void **)((int)ppcVar15 + -0x10));\n          }\n        }\n        *(Task **)((int)ppcVar15 + -0xc) = local_98;\n        *(int *)((int)ppcVar15 + -0x10) = local_bc;\n        *(pointer *)((int)ppcVar15 + -0x14) = local_b0;\n        *(int *)((int)ppcVar15 + -0x18) = local_c0;\n        *(int *)((int)ppcVar15 + -0x1c) = local_b4;\n        *(int *)((int)ppcVar15 + -0x20) = local_c4;\n        *(pointer *)((int)ppcVar15 + -0x24) = (pTVar10->name_)._M_dataplus._M_p;\n        *(int *)((int)ppcVar15 + -0x28) = thread_number;\n        *(undefined ***)((int)ppcVar15 + -0x2c) = local_90 + -0x3d24b;\n        *(undefined4 *)((int)ppcVar15 + -0x30) = local_b8;\n        *(undefined4 *)((int)ppcVar15 + -0x34) = 0x1913c3;\n        Errors::debug(*(Errors **)((int)ppcVar15 + -0x30),*(char **)((int)ppcVar15 + -0x2c));\n      }\n    }" if (parenthesized_expression "((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0))" ( (binary_expression "(*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)" (parenthesized_expression "(*(int *)(*local_94 + 8) != 0)" ( (binary_expression "*(int *)(*local_94 + 8) != 0" (pointer_expression "*(int *)(*local_94 + 8)" * (cast_expression "(int *)(*local_94 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_94 + 8)" ( (binary_expression "*local_94 + 8" (pointer_expression "*local_94" * identifier) + number_literal) )))) != number_literal) )) && (parenthesized_expression "(((*local_94)[0x14] & 1) != 0)" ( (binary_expression "((*local_94)[0x14] & 1) != 0" (parenthesized_expression "((*local_94)[0x14] & 1)" ( (binary_expression "(*local_94)[0x14] & 1" (subscript_expression "(*local_94)[0x14]" (parenthesized_expression "(*local_94)" ( (pointer_expression "*local_94" * identifier) )) [ number_literal ]) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n      *(Timer **)((int)ppcVar15 + -0xc) = local_9c;\n      *(int **)((int)ppcVar15 + -0x10) = &local_84;\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191202;\n      Timer::get_elapsed_time(*(Timer **)((int)ppcVar15 + -0xc));\n      puVar9 = (undefined4 *)*local_94;\n      if ((puVar9[2] != 0) && ((*(byte *)(puVar9 + 5) & 1) != 0)) {\n        local_b8 = *puVar9;\n        local_bc = local_7c / 1000;\n        local_98 = (Task *)((local_7c % 1000) * 1000);\n        local_c0 = local_80 / 1000;\n        local_b0 = (pointer)((local_80 % 1000) * 1000);\n        local_c4 = local_84 / 1000;\n        local_b4 = (local_84 % 1000) * 1000;\n        if ((pTVar10->name_)._M_string_length == 0) {\n          ppuVar4 = (undefined **)pTVar10->_vptr_Task[5];\n          if (ppuVar4 == local_90 + -0xc8a2c) {\n            pcVar13 = pTVar10[1].name_._M_dataplus._M_p;\n            local_c8 = local_5c;\n            pcVar11 = (pointer)0xffffffff;\n            local_64._M_p = (pointer)local_c8;\n            if (pcVar13 != (pointer)0x0) {\n              *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;\n              *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1912ff;\n              local_cc = pcVar13;\n              sVar12 = strlen(*(char **)((int)ppcVar15 + -0x10));\n              pcVar11 = local_cc + sVar12;\n              pcVar13 = local_cc;\n            }\n            *(undefined4 *)((int)ppcVar15 + -4) = 0;\n            *(pointer *)((int)ppcVar15 + -8) = pcVar11;\n            *(pointer *)((int)ppcVar15 + -0xc) = pcVar13;\n            *(_Alloc_hider **)((int)ppcVar15 + -0x10) = &local_64;\n            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191317;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char_const*>();\n          }\n          else {\n            *(Task **)((int)ppcVar15 + -0xc) = pTVar10;\n            *(_Alloc_hider **)((int)ppcVar15 + -0x10) = &local_64;\n            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191579;\n            (*(code *)ppuVar4)();\n            local_c8 = local_5c;\n            ppcVar15 = (pointer *)((int)ppcVar15 + -4);\n          }\n          _Var14._M_p = (pTVar10->name_)._M_dataplus._M_p;\n          if ((size_type *)local_64._M_p == local_c8) {\n            if (local_60 != 0) {\n              if (local_60 == 1) {\n                *_Var14._M_p = (char)local_5c[0];\n                _Var14._M_p = (pTVar10->name_)._M_dataplus._M_p;\n              }\n              else {\n                *(size_type *)((int)ppcVar15 + -8) = local_60;\n                *(size_type **)((int)ppcVar15 + -0xc) = local_c8;\n                *(pointer *)((int)ppcVar15 + -0x10) = _Var14._M_p;\n                *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19154f;\n                memcpy(*(void **)((int)ppcVar15 + -0x10),*(void **)((int)ppcVar15 + -0xc),\n                       *(size_t *)((int)ppcVar15 + -8));\n                _Var14._M_p = (pTVar10->name_)._M_dataplus._M_p;\n              }\n            }\n            (pTVar10->name_)._M_string_length = local_60;\n            *(_Var14._M_p + local_60) = '\0';\n            _Var14._M_p = local_64._M_p;\n            sVar5 = local_5c[0];\n          }\n          else {\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)_Var14._M_p == &(pTVar10->name_).field_2) {\n              (pTVar10->name_)._M_dataplus._M_p = local_64._M_p;\n              (pTVar10->name_)._M_string_length = local_60;\n              (pTVar10->name_).field_2._M_allocated_capacity = local_5c[0];\n            }\n            else {\n              (pTVar10->name_)._M_dataplus._M_p = local_64._M_p;\n              sVar5 = (pTVar10->name_).field_2._M_allocated_capacity;\n              (pTVar10->name_)._M_string_length = local_60;\n              (pTVar10->name_).field_2._M_allocated_capacity = local_5c[0];\n              local_64._M_p = _Var14._M_p;\n              if ((size_type *)_Var14._M_p != (size_type *)0x0) goto LAB_00191357;\n            }\n            local_64._M_p = (pointer)local_c8;\n            local_c8 = local_5c;\n            _Var14._M_p = (pointer)local_c8;\n            sVar5 = local_5c[0];\n          }\nLAB_00191357:\n          local_5c[0] = sVar5;\n          local_60 = 0;\n          *_Var14._M_p = '\0';\n          if ((size_type *)local_64._M_p != local_c8) {\n            *(pointer *)((int)ppcVar15 + -0x10) = local_64._M_p;\n            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19137b;\n            operator_delete(*(void **)((int)ppcVar15 + -0x10));\n          }\n        }\n        *(Task **)((int)ppcVar15 + -0xc) = local_98;\n        *(int *)((int)ppcVar15 + -0x10) = local_bc;\n        *(pointer *)((int)ppcVar15 + -0x14) = local_b0;\n        *(int *)((int)ppcVar15 + -0x18) = local_c0;\n        *(int *)((int)ppcVar15 + -0x1c) = local_b4;\n        *(int *)((int)ppcVar15 + -0x20) = local_c4;\n        *(pointer *)((int)ppcVar15 + -0x24) = (pTVar10->name_)._M_dataplus._M_p;\n        *(int *)((int)ppcVar15 + -0x28) = thread_number;\n        *(undefined ***)((int)ppcVar15 + -0x2c) = local_90 + -0x3d24b;\n        *(undefined4 *)((int)ppcVar15 + -0x30) = local_b8;\n        *(undefined4 *)((int)ppcVar15 + -0x34) = 0x1913c3;\n        Errors::debug(*(Errors **)((int)ppcVar15 + -0x30),*(char **)((int)ppcVar15 + -0x2c));\n      }\n    }" { (expression_statement "*(Timer **)((int)ppcVar15 + -0xc) = local_9c;" (assignment_expression "*(Timer **)((int)ppcVar15 + -0xc) = local_9c" (pointer_expression "*(Timer **)((int)ppcVar15 + -0xc)" * (cast_expression "(Timer **)((int)ppcVar15 + -0xc)" ( (type_descriptor "Timer **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -0xc)" ( (binary_expression "(int)ppcVar15 + -0xc" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)ppcVar15 + -0x10) = &local_84;" (assignment_expression "*(int **)((int)ppcVar15 + -0x10) = &local_84" (pointer_expression "*(int **)((int)ppcVar15 + -0x10)" * (cast_expression "(int **)((int)ppcVar15 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -0x10)" ( (binary_expression "(int)ppcVar15 + -0x10" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_84" & identifier)) ;) (expression_statement "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x191202;" (assignment_expression "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x191202" (pointer_expression "*(undefined4 *)((int)ppcVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0x14)" ( (binary_expression "(int)ppcVar15 + -0x14" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "Timer::get_elapsed_time(*(Timer **)((int)ppcVar15 + -0xc));" statement_identifier : (ERROR ":" :) (expression_statement "get_elapsed_time(*(Timer **)((int)ppcVar15 + -0xc));" (call_expression "get_elapsed_time(*(Timer **)((int)ppcVar15 + -0xc))" identifier (argument_list "(*(Timer **)((int)ppcVar15 + -0xc))" ( (pointer_expression "*(Timer **)((int)ppcVar15 + -0xc)" * (cast_expression "(Timer **)((int)ppcVar15 + -0xc)" ( (type_descriptor "Timer **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -0xc)" ( (binary_expression "(int)ppcVar15 + -0xc" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) (expression_statement "puVar9 = (undefined4 *)*local_94;" (assignment_expression "puVar9 = (undefined4 *)*local_94" identifier = (cast_expression "(undefined4 *)*local_94" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_94" * identifier))) ;) (if_statement "if ((puVar9[2] != 0) && ((*(byte *)(puVar9 + 5) & 1) != 0)) {\n        local_b8 = *puVar9;\n        local_bc = local_7c / 1000;\n        local_98 = (Task *)((local_7c % 1000) * 1000);\n        local_c0 = local_80 / 1000;\n        local_b0 = (pointer)((local_80 % 1000) * 1000);\n        local_c4 = local_84 / 1000;\n        local_b4 = (local_84 % 1000) * 1000;\n        if ((pTVar10->name_)._M_string_length == 0) {\n          ppuVar4 = (undefined **)pTVar10->_vptr_Task[5];\n          if (ppuVar4 == local_90 + -0xc8a2c) {\n            pcVar13 = pTVar10[1].name_._M_dataplus._M_p;\n            local_c8 = local_5c;\n            pcVar11 = (pointer)0xffffffff;\n            local_64._M_p = (pointer)local_c8;\n            if (pcVar13 != (pointer)0x0) {\n              *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;\n              *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1912ff;\n              local_cc = pcVar13;\n              sVar12 = strlen(*(char **)((int)ppcVar15 + -0x10));\n              pcVar11 = local_cc + sVar12;\n              pcVar13 = local_cc;\n            }\n            *(undefined4 *)((int)ppcVar15 + -4) = 0;\n            *(pointer *)((int)ppcVar15 + -8) = pcVar11;\n            *(pointer *)((int)ppcVar15 + -0xc) = pcVar13;\n            *(_Alloc_hider **)((int)ppcVar15 + -0x10) = &local_64;\n            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191317;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char_const*>();\n          }\n          else {\n            *(Task **)((int)ppcVar15 + -0xc) = pTVar10;\n            *(_Alloc_hider **)((int)ppcVar15 + -0x10) = &local_64;\n            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191579;\n            (*(code *)ppuVar4)();\n            local_c8 = local_5c;\n            ppcVar15 = (pointer *)((int)ppcVar15 + -4);\n          }\n          _Var14._M_p = (pTVar10->name_)._M_dataplus._M_p;\n          if ((size_type *)local_64._M_p == local_c8) {\n            if (local_60 != 0) {\n              if (local_60 == 1) {\n                *_Var14._M_p = (char)local_5c[0];\n                _Var14._M_p = (pTVar10->name_)._M_dataplus._M_p;\n              }\n              else {\n                *(size_type *)((int)ppcVar15 + -8) = local_60;\n                *(size_type **)((int)ppcVar15 + -0xc) = local_c8;\n                *(pointer *)((int)ppcVar15 + -0x10) = _Var14._M_p;\n                *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19154f;\n                memcpy(*(void **)((int)ppcVar15 + -0x10),*(void **)((int)ppcVar15 + -0xc),\n                       *(size_t *)((int)ppcVar15 + -8));\n                _Var14._M_p = (pTVar10->name_)._M_dataplus._M_p;\n              }\n            }\n            (pTVar10->name_)._M_string_length = local_60;\n            *(_Var14._M_p + local_60) = '\0';\n            _Var14._M_p = local_64._M_p;\n            sVar5 = local_5c[0];\n          }\n          else {\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)_Var14._M_p == &(pTVar10->name_).field_2) {\n              (pTVar10->name_)._M_dataplus._M_p = local_64._M_p;\n              (pTVar10->name_)._M_string_length = local_60;\n              (pTVar10->name_).field_2._M_allocated_capacity = local_5c[0];\n            }\n            else {\n              (pTVar10->name_)._M_dataplus._M_p = local_64._M_p;\n              sVar5 = (pTVar10->name_).field_2._M_allocated_capacity;\n              (pTVar10->name_)._M_string_length = local_60;\n              (pTVar10->name_).field_2._M_allocated_capacity = local_5c[0];\n              local_64._M_p = _Var14._M_p;\n              if ((size_type *)_Var14._M_p != (size_type *)0x0) goto LAB_00191357;\n            }\n            local_64._M_p = (pointer)local_c8;\n            local_c8 = local_5c;\n            _Var14._M_p = (pointer)local_c8;\n            sVar5 = local_5c[0];\n          }\nLAB_00191357:\n          local_5c[0] = sVar5;\n          local_60 = 0;\n          *_Var14._M_p = '\0';\n          if ((size_type *)local_64._M_p != local_c8) {\n            *(pointer *)((int)ppcVar15 + -0x10) = local_64._M_p;\n            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19137b;\n            operator_delete(*(void **)((int)ppcVar15 + -0x10));\n          }\n        }\n        *(Task **)((int)ppcVar15 + -0xc) = local_98;\n        *(int *)((int)ppcVar15 + -0x10) = local_bc;\n        *(pointer *)((int)ppcVar15 + -0x14) = local_b0;\n        *(int *)((int)ppcVar15 + -0x18) = local_c0;\n        *(int *)((int)ppcVar15 + -0x1c) = local_b4;\n        *(int *)((int)ppcVar15 + -0x20) = local_c4;\n        *(pointer *)((int)ppcVar15 + -0x24) = (pTVar10->name_)._M_dataplus._M_p;\n        *(int *)((int)ppcVar15 + -0x28) = thread_number;\n        *(undefined ***)((int)ppcVar15 + -0x2c) = local_90 + -0x3d24b;\n        *(undefined4 *)((int)ppcVar15 + -0x30) = local_b8;\n        *(undefined4 *)((int)ppcVar15 + -0x34) = 0x1913c3;\n        Errors::debug(*(Errors **)((int)ppcVar15 + -0x30),*(char **)((int)ppcVar15 + -0x2c));\n      }" if (parenthesized_expression "((puVar9[2] != 0) && ((*(byte *)(puVar9 + 5) & 1) != 0))" ( (binary_expression "(puVar9[2] != 0) && ((*(byte *)(puVar9 + 5) & 1) != 0)" (parenthesized_expression "(puVar9[2] != 0)" ( (binary_expression "puVar9[2] != 0" (subscript_expression "puVar9[2]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "((*(byte *)(puVar9 + 5) & 1) != 0)" ( (binary_expression "(*(byte *)(puVar9 + 5) & 1) != 0" (parenthesized_expression "(*(byte *)(puVar9 + 5) & 1)" ( (binary_expression "*(byte *)(puVar9 + 5) & 1" (pointer_expression "*(byte *)(puVar9 + 5)" * (cast_expression "(byte *)(puVar9 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 5)" ( (binary_expression "puVar9 + 5" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n        local_b8 = *puVar9;\n        local_bc = local_7c / 1000;\n        local_98 = (Task *)((local_7c % 1000) * 1000);\n        local_c0 = local_80 / 1000;\n        local_b0 = (pointer)((local_80 % 1000) * 1000);\n        local_c4 = local_84 / 1000;\n        local_b4 = (local_84 % 1000) * 1000;\n        if ((pTVar10->name_)._M_string_length == 0) {\n          ppuVar4 = (undefined **)pTVar10->_vptr_Task[5];\n          if (ppuVar4 == local_90 + -0xc8a2c) {\n            pcVar13 = pTVar10[1].name_._M_dataplus._M_p;\n            local_c8 = local_5c;\n            pcVar11 = (pointer)0xffffffff;\n            local_64._M_p = (pointer)local_c8;\n            if (pcVar13 != (pointer)0x0) {\n              *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;\n              *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1912ff;\n              local_cc = pcVar13;\n              sVar12 = strlen(*(char **)((int)ppcVar15 + -0x10));\n              pcVar11 = local_cc + sVar12;\n              pcVar13 = local_cc;\n            }\n            *(undefined4 *)((int)ppcVar15 + -4) = 0;\n            *(pointer *)((int)ppcVar15 + -8) = pcVar11;\n            *(pointer *)((int)ppcVar15 + -0xc) = pcVar13;\n            *(_Alloc_hider **)((int)ppcVar15 + -0x10) = &local_64;\n            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191317;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char_const*>();\n          }\n          else {\n            *(Task **)((int)ppcVar15 + -0xc) = pTVar10;\n            *(_Alloc_hider **)((int)ppcVar15 + -0x10) = &local_64;\n            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191579;\n            (*(code *)ppuVar4)();\n            local_c8 = local_5c;\n            ppcVar15 = (pointer *)((int)ppcVar15 + -4);\n          }\n          _Var14._M_p = (pTVar10->name_)._M_dataplus._M_p;\n          if ((size_type *)local_64._M_p == local_c8) {\n            if (local_60 != 0) {\n              if (local_60 == 1) {\n                *_Var14._M_p = (char)local_5c[0];\n                _Var14._M_p = (pTVar10->name_)._M_dataplus._M_p;\n              }\n              else {\n                *(size_type *)((int)ppcVar15 + -8) = local_60;\n                *(size_type **)((int)ppcVar15 + -0xc) = local_c8;\n                *(pointer *)((int)ppcVar15 + -0x10) = _Var14._M_p;\n                *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19154f;\n                memcpy(*(void **)((int)ppcVar15 + -0x10),*(void **)((int)ppcVar15 + -0xc),\n                       *(size_t *)((int)ppcVar15 + -8));\n                _Var14._M_p = (pTVar10->name_)._M_dataplus._M_p;\n              }\n            }\n            (pTVar10->name_)._M_string_length = local_60;\n            *(_Var14._M_p + local_60) = '\0';\n            _Var14._M_p = local_64._M_p;\n            sVar5 = local_5c[0];\n          }\n          else {\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)_Var14._M_p == &(pTVar10->name_).field_2) {\n              (pTVar10->name_)._M_dataplus._M_p = local_64._M_p;\n              (pTVar10->name_)._M_string_length = local_60;\n              (pTVar10->name_).field_2._M_allocated_capacity = local_5c[0];\n            }\n            else {\n              (pTVar10->name_)._M_dataplus._M_p = local_64._M_p;\n              sVar5 = (pTVar10->name_).field_2._M_allocated_capacity;\n              (pTVar10->name_)._M_string_length = local_60;\n              (pTVar10->name_).field_2._M_allocated_capacity = local_5c[0];\n              local_64._M_p = _Var14._M_p;\n              if ((size_type *)_Var14._M_p != (size_type *)0x0) goto LAB_00191357;\n            }\n            local_64._M_p = (pointer)local_c8;\n            local_c8 = local_5c;\n            _Var14._M_p = (pointer)local_c8;\n            sVar5 = local_5c[0];\n          }\nLAB_00191357:\n          local_5c[0] = sVar5;\n          local_60 = 0;\n          *_Var14._M_p = '\0';\n          if ((size_type *)local_64._M_p != local_c8) {\n            *(pointer *)((int)ppcVar15 + -0x10) = local_64._M_p;\n            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19137b;\n            operator_delete(*(void **)((int)ppcVar15 + -0x10));\n          }\n        }\n        *(Task **)((int)ppcVar15 + -0xc) = local_98;\n        *(int *)((int)ppcVar15 + -0x10) = local_bc;\n        *(pointer *)((int)ppcVar15 + -0x14) = local_b0;\n        *(int *)((int)ppcVar15 + -0x18) = local_c0;\n        *(int *)((int)ppcVar15 + -0x1c) = local_b4;\n        *(int *)((int)ppcVar15 + -0x20) = local_c4;\n        *(pointer *)((int)ppcVar15 + -0x24) = (pTVar10->name_)._M_dataplus._M_p;\n        *(int *)((int)ppcVar15 + -0x28) = thread_number;\n        *(undefined ***)((int)ppcVar15 + -0x2c) = local_90 + -0x3d24b;\n        *(undefined4 *)((int)ppcVar15 + -0x30) = local_b8;\n        *(undefined4 *)((int)ppcVar15 + -0x34) = 0x1913c3;\n        Errors::debug(*(Errors **)((int)ppcVar15 + -0x30),*(char **)((int)ppcVar15 + -0x2c));\n      }" { (expression_statement "local_b8 = *puVar9;" (assignment_expression "local_b8 = *puVar9" identifier = (pointer_expression "*puVar9" * identifier)) ;) (expression_statement "local_bc = local_7c / 1000;" (assignment_expression "local_bc = local_7c / 1000" identifier = (binary_expression "local_7c / 1000" identifier / number_literal)) ;) (expression_statement "local_98 = (Task *)((local_7c % 1000) * 1000);" (assignment_expression "local_98 = (Task *)((local_7c % 1000) * 1000)" identifier = (cast_expression "(Task *)((local_7c % 1000) * 1000)" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((local_7c % 1000) * 1000)" ( (binary_expression "(local_7c % 1000) * 1000" (parenthesized_expression "(local_7c % 1000)" ( (binary_expression "local_7c % 1000" identifier % number_literal) )) * number_literal) )))) ;) (expression_statement "local_c0 = local_80 / 1000;" (assignment_expression "local_c0 = local_80 / 1000" identifier = (binary_expression "local_80 / 1000" identifier / number_literal)) ;) (expression_statement "local_b0 = (pointer)((local_80 % 1000) * 1000);" (assignment_expression "local_b0 = (pointer)((local_80 % 1000) * 1000)" identifier = (call_expression "(pointer)((local_80 % 1000) * 1000)" (parenthesized_expression "(pointer)" ( identifier )) (argument_list "((local_80 % 1000) * 1000)" ( (binary_expression "(local_80 % 1000) * 1000" (parenthesized_expression "(local_80 % 1000)" ( (binary_expression "local_80 % 1000" identifier % number_literal) )) * number_literal) )))) ;) (expression_statement "local_c4 = local_84 / 1000;" (assignment_expression "local_c4 = local_84 / 1000" identifier = (binary_expression "local_84 / 1000" identifier / number_literal)) ;) (expression_statement "local_b4 = (local_84 % 1000) * 1000;" (assignment_expression "local_b4 = (local_84 % 1000) * 1000" identifier = (binary_expression "(local_84 % 1000) * 1000" (parenthesized_expression "(local_84 % 1000)" ( (binary_expression "local_84 % 1000" identifier % number_literal) )) * number_literal)) ;) (if_statement "if ((pTVar10->name_)._M_string_length == 0) {\n          ppuVar4 = (undefined **)pTVar10->_vptr_Task[5];\n          if (ppuVar4 == local_90 + -0xc8a2c) {\n            pcVar13 = pTVar10[1].name_._M_dataplus._M_p;\n            local_c8 = local_5c;\n            pcVar11 = (pointer)0xffffffff;\n            local_64._M_p = (pointer)local_c8;\n            if (pcVar13 != (pointer)0x0) {\n              *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;\n              *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1912ff;\n              local_cc = pcVar13;\n              sVar12 = strlen(*(char **)((int)ppcVar15 + -0x10));\n              pcVar11 = local_cc + sVar12;\n              pcVar13 = local_cc;\n            }\n            *(undefined4 *)((int)ppcVar15 + -4) = 0;\n            *(pointer *)((int)ppcVar15 + -8) = pcVar11;\n            *(pointer *)((int)ppcVar15 + -0xc) = pcVar13;\n            *(_Alloc_hider **)((int)ppcVar15 + -0x10) = &local_64;\n            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191317;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char_const*>();\n          }\n          else {\n            *(Task **)((int)ppcVar15 + -0xc) = pTVar10;\n            *(_Alloc_hider **)((int)ppcVar15 + -0x10) = &local_64;\n            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191579;\n            (*(code *)ppuVar4)();\n            local_c8 = local_5c;\n            ppcVar15 = (pointer *)((int)ppcVar15 + -4);\n          }\n          _Var14._M_p = (pTVar10->name_)._M_dataplus._M_p;\n          if ((size_type *)local_64._M_p == local_c8) {\n            if (local_60 != 0) {\n              if (local_60 == 1) {\n                *_Var14._M_p = (char)local_5c[0];\n                _Var14._M_p = (pTVar10->name_)._M_dataplus._M_p;\n              }\n              else {\n                *(size_type *)((int)ppcVar15 + -8) = local_60;\n                *(size_type **)((int)ppcVar15 + -0xc) = local_c8;\n                *(pointer *)((int)ppcVar15 + -0x10) = _Var14._M_p;\n                *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19154f;\n                memcpy(*(void **)((int)ppcVar15 + -0x10),*(void **)((int)ppcVar15 + -0xc),\n                       *(size_t *)((int)ppcVar15 + -8));\n                _Var14._M_p = (pTVar10->name_)._M_dataplus._M_p;\n              }\n            }\n            (pTVar10->name_)._M_string_length = local_60;\n            *(_Var14._M_p + local_60) = '\0';\n            _Var14._M_p = local_64._M_p;\n            sVar5 = local_5c[0];\n          }\n          else {\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)_Var14._M_p == &(pTVar10->name_).field_2) {\n              (pTVar10->name_)._M_dataplus._M_p = local_64._M_p;\n              (pTVar10->name_)._M_string_length = local_60;\n              (pTVar10->name_).field_2._M_allocated_capacity = local_5c[0];\n            }\n            else {\n              (pTVar10->name_)._M_dataplus._M_p = local_64._M_p;\n              sVar5 = (pTVar10->name_).field_2._M_allocated_capacity;\n              (pTVar10->name_)._M_string_length = local_60;\n              (pTVar10->name_).field_2._M_allocated_capacity = local_5c[0];\n              local_64._M_p = _Var14._M_p;\n              if ((size_type *)_Var14._M_p != (size_type *)0x0) goto LAB_00191357;\n            }\n            local_64._M_p = (pointer)local_c8;\n            local_c8 = local_5c;\n            _Var14._M_p = (pointer)local_c8;\n            sVar5 = local_5c[0];\n          }\nLAB_00191357:\n          local_5c[0] = sVar5;\n          local_60 = 0;\n          *_Var14._M_p = '\0';\n          if ((size_type *)local_64._M_p != local_c8) {\n            *(pointer *)((int)ppcVar15 + -0x10) = local_64._M_p;\n            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19137b;\n            operator_delete(*(void **)((int)ppcVar15 + -0x10));\n          }\n        }" if (parenthesized_expression "((pTVar10->name_)._M_string_length == 0)" ( (binary_expression "(pTVar10->name_)._M_string_length == 0" (field_expression "(pTVar10->name_)._M_string_length" (parenthesized_expression "(pTVar10->name_)" ( (field_expression "pTVar10->name_" identifier -> field_identifier) )) . field_identifier) == number_literal) )) (compound_statement "{\n          ppuVar4 = (undefined **)pTVar10->_vptr_Task[5];\n          if (ppuVar4 == local_90 + -0xc8a2c) {\n            pcVar13 = pTVar10[1].name_._M_dataplus._M_p;\n            local_c8 = local_5c;\n            pcVar11 = (pointer)0xffffffff;\n            local_64._M_p = (pointer)local_c8;\n            if (pcVar13 != (pointer)0x0) {\n              *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;\n              *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1912ff;\n              local_cc = pcVar13;\n              sVar12 = strlen(*(char **)((int)ppcVar15 + -0x10));\n              pcVar11 = local_cc + sVar12;\n              pcVar13 = local_cc;\n            }\n            *(undefined4 *)((int)ppcVar15 + -4) = 0;\n            *(pointer *)((int)ppcVar15 + -8) = pcVar11;\n            *(pointer *)((int)ppcVar15 + -0xc) = pcVar13;\n            *(_Alloc_hider **)((int)ppcVar15 + -0x10) = &local_64;\n            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191317;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char_const*>();\n          }\n          else {\n            *(Task **)((int)ppcVar15 + -0xc) = pTVar10;\n            *(_Alloc_hider **)((int)ppcVar15 + -0x10) = &local_64;\n            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191579;\n            (*(code *)ppuVar4)();\n            local_c8 = local_5c;\n            ppcVar15 = (pointer *)((int)ppcVar15 + -4);\n          }\n          _Var14._M_p = (pTVar10->name_)._M_dataplus._M_p;\n          if ((size_type *)local_64._M_p == local_c8) {\n            if (local_60 != 0) {\n              if (local_60 == 1) {\n                *_Var14._M_p = (char)local_5c[0];\n                _Var14._M_p = (pTVar10->name_)._M_dataplus._M_p;\n              }\n              else {\n                *(size_type *)((int)ppcVar15 + -8) = local_60;\n                *(size_type **)((int)ppcVar15 + -0xc) = local_c8;\n                *(pointer *)((int)ppcVar15 + -0x10) = _Var14._M_p;\n                *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19154f;\n                memcpy(*(void **)((int)ppcVar15 + -0x10),*(void **)((int)ppcVar15 + -0xc),\n                       *(size_t *)((int)ppcVar15 + -8));\n                _Var14._M_p = (pTVar10->name_)._M_dataplus._M_p;\n              }\n            }\n            (pTVar10->name_)._M_string_length = local_60;\n            *(_Var14._M_p + local_60) = '\0';\n            _Var14._M_p = local_64._M_p;\n            sVar5 = local_5c[0];\n          }\n          else {\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)_Var14._M_p == &(pTVar10->name_).field_2) {\n              (pTVar10->name_)._M_dataplus._M_p = local_64._M_p;\n              (pTVar10->name_)._M_string_length = local_60;\n              (pTVar10->name_).field_2._M_allocated_capacity = local_5c[0];\n            }\n            else {\n              (pTVar10->name_)._M_dataplus._M_p = local_64._M_p;\n              sVar5 = (pTVar10->name_).field_2._M_allocated_capacity;\n              (pTVar10->name_)._M_string_length = local_60;\n              (pTVar10->name_).field_2._M_allocated_capacity = local_5c[0];\n              local_64._M_p = _Var14._M_p;\n              if ((size_type *)_Var14._M_p != (size_type *)0x0) goto LAB_00191357;\n            }\n            local_64._M_p = (pointer)local_c8;\n            local_c8 = local_5c;\n            _Var14._M_p = (pointer)local_c8;\n            sVar5 = local_5c[0];\n          }\nLAB_00191357:\n          local_5c[0] = sVar5;\n          local_60 = 0;\n          *_Var14._M_p = '\0';\n          if ((size_type *)local_64._M_p != local_c8) {\n            *(pointer *)((int)ppcVar15 + -0x10) = local_64._M_p;\n            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19137b;\n            operator_delete(*(void **)((int)ppcVar15 + -0x10));\n          }\n        }" { (expression_statement "ppuVar4 = (undefined **)pTVar10->_vptr_Task[5];" (assignment_expression "ppuVar4 = (undefined **)pTVar10->_vptr_Task[5]" identifier = (cast_expression "(undefined **)pTVar10->_vptr_Task[5]" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "pTVar10->_vptr_Task[5]" (field_expression "pTVar10->_vptr_Task" identifier -> field_identifier) [ number_literal ]))) ;) (if_statement "if (ppuVar4 == local_90 + -0xc8a2c) {\n            pcVar13 = pTVar10[1].name_._M_dataplus._M_p;\n            local_c8 = local_5c;\n            pcVar11 = (pointer)0xffffffff;\n            local_64._M_p = (pointer)local_c8;\n            if (pcVar13 != (pointer)0x0) {\n              *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;\n              *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1912ff;\n              local_cc = pcVar13;\n              sVar12 = strlen(*(char **)((int)ppcVar15 + -0x10));\n              pcVar11 = local_cc + sVar12;\n              pcVar13 = local_cc;\n            }\n            *(undefined4 *)((int)ppcVar15 + -4) = 0;\n            *(pointer *)((int)ppcVar15 + -8) = pcVar11;\n            *(pointer *)((int)ppcVar15 + -0xc) = pcVar13;\n            *(_Alloc_hider **)((int)ppcVar15 + -0x10) = &local_64;\n            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191317;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char_const*>();\n          }\n          else {\n            *(Task **)((int)ppcVar15 + -0xc) = pTVar10;\n            *(_Alloc_hider **)((int)ppcVar15 + -0x10) = &local_64;\n            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191579;\n            (*(code *)ppuVar4)();\n            local_c8 = local_5c;\n            ppcVar15 = (pointer *)((int)ppcVar15 + -4);\n          }" if (parenthesized_expression "(ppuVar4 == local_90 + -0xc8a2c)" ( (binary_expression "ppuVar4 == local_90 + -0xc8a2c" identifier == (binary_expression "local_90 + -0xc8a2c" identifier + number_literal)) )) (compound_statement "{\n            pcVar13 = pTVar10[1].name_._M_dataplus._M_p;\n            local_c8 = local_5c;\n            pcVar11 = (pointer)0xffffffff;\n            local_64._M_p = (pointer)local_c8;\n            if (pcVar13 != (pointer)0x0) {\n              *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;\n              *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1912ff;\n              local_cc = pcVar13;\n              sVar12 = strlen(*(char **)((int)ppcVar15 + -0x10));\n              pcVar11 = local_cc + sVar12;\n              pcVar13 = local_cc;\n            }\n            *(undefined4 *)((int)ppcVar15 + -4) = 0;\n            *(pointer *)((int)ppcVar15 + -8) = pcVar11;\n            *(pointer *)((int)ppcVar15 + -0xc) = pcVar13;\n            *(_Alloc_hider **)((int)ppcVar15 + -0x10) = &local_64;\n            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191317;\n            std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char_const*>();\n          }" { (expression_statement "pcVar13 = pTVar10[1].name_._M_dataplus._M_p;" (assignment_expression "pcVar13 = pTVar10[1].name_._M_dataplus._M_p" identifier = (field_expression "pTVar10[1].name_._M_dataplus._M_p" (field_expression "pTVar10[1].name_._M_dataplus" (field_expression "pTVar10[1].name_" (subscript_expression "pTVar10[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "local_c8 = local_5c;" (assignment_expression "local_c8 = local_5c" identifier = identifier) ;) (expression_statement "pcVar11 = (pointer)0xffffffff;" (assignment_expression "pcVar11 = (pointer)0xffffffff" identifier = (cast_expression "(pointer)0xffffffff" ( (type_descriptor "pointer" type_identifier) ) number_literal)) ;) (expression_statement "local_64._M_p = (pointer)local_c8;" (assignment_expression "local_64._M_p = (pointer)local_c8" (field_expression "local_64._M_p" identifier . field_identifier) = (cast_expression "(pointer)local_c8" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (if_statement "if (pcVar13 != (pointer)0x0) {\n              *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;\n              *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1912ff;\n              local_cc = pcVar13;\n              sVar12 = strlen(*(char **)((int)ppcVar15 + -0x10));\n              pcVar11 = local_cc + sVar12;\n              pcVar13 = local_cc;\n            }" if (parenthesized_expression "(pcVar13 != (pointer)0x0)" ( (binary_expression "pcVar13 != (pointer)0x0" identifier != (cast_expression "(pointer)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) (compound_statement "{\n              *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;\n              *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1912ff;\n              local_cc = pcVar13;\n              sVar12 = strlen(*(char **)((int)ppcVar15 + -0x10));\n              pcVar11 = local_cc + sVar12;\n              pcVar13 = local_cc;\n            }" { (expression_statement "*(pointer *)((int)ppcVar15 + -0x10) = pcVar13;" (assignment_expression "*(pointer *)((int)ppcVar15 + -0x10) = pcVar13" (pointer_expression "*(pointer *)((int)ppcVar15 + -0x10)" * (cast_expression "(pointer *)((int)ppcVar15 + -0x10)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0x10)" ( (binary_expression "(int)ppcVar15 + -0x10" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x1912ff;" (assignment_expression "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x1912ff" (pointer_expression "*(undefined4 *)((int)ppcVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0x14)" ( (binary_expression "(int)ppcVar15 + -0x14" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_cc = pcVar13;" (assignment_expression "local_cc = pcVar13" identifier = identifier) ;) (expression_statement "sVar12 = strlen(*(char **)((int)ppcVar15 + -0x10));" (assignment_expression "sVar12 = strlen(*(char **)((int)ppcVar15 + -0x10))" identifier = (call_expression "strlen(*(char **)((int)ppcVar15 + -0x10))" identifier (argument_list "(*(char **)((int)ppcVar15 + -0x10))" ( (pointer_expression "*(char **)((int)ppcVar15 + -0x10)" * (cast_expression "(char **)((int)ppcVar15 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -0x10)" ( (binary_expression "(int)ppcVar15 + -0x10" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (expression_statement "pcVar11 = local_cc + sVar12;" (assignment_expression "pcVar11 = local_cc + sVar12" identifier = (binary_expression "local_cc + sVar12" identifier + identifier)) ;) (expression_statement "pcVar13 = local_cc;" (assignment_expression "pcVar13 = local_cc" identifier = identifier) ;) })) (expression_statement "*(undefined4 *)((int)ppcVar15 + -4) = 0;" (assignment_expression "*(undefined4 *)((int)ppcVar15 + -4) = 0" (pointer_expression "*(undefined4 *)((int)ppcVar15 + -4)" * (cast_expression "(undefined4 *)((int)ppcVar15 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -4)" ( (binary_expression "(int)ppcVar15 + -4" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(pointer *)((int)ppcVar15 + -8) = pcVar11;" (assignment_expression "*(pointer *)((int)ppcVar15 + -8) = pcVar11" (pointer_expression "*(pointer *)((int)ppcVar15 + -8)" * (cast_expression "(pointer *)((int)ppcVar15 + -8)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -8)" ( (binary_expression "(int)ppcVar15 + -8" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(pointer *)((int)ppcVar15 + -0xc) = pcVar13;" (assignment_expression "*(pointer *)((int)ppcVar15 + -0xc) = pcVar13" (pointer_expression "*(pointer *)((int)ppcVar15 + -0xc)" * (cast_expression "(pointer *)((int)ppcVar15 + -0xc)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0xc)" ( (binary_expression "(int)ppcVar15 + -0xc" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(_Alloc_hider **)((int)ppcVar15 + -0x10) = &local_64;" (assignment_expression "*(_Alloc_hider **)((int)ppcVar15 + -0x10) = &local_64" (pointer_expression "*(_Alloc_hider **)((int)ppcVar15 + -0x10)" * (cast_expression "(_Alloc_hider **)((int)ppcVar15 + -0x10)" ( (type_descriptor "_Alloc_hider **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -0x10)" ( (binary_expression "(int)ppcVar15 + -0x10" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_64" & identifier)) ;) (expression_statement "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x191317;" (assignment_expression "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x191317" (pointer_expression "*(undefined4 *)((int)ppcVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0x14)" ( (binary_expression "(int)ppcVar15 + -0x14" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "std::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>::\n            _M_construct<char_const*>();" statement_identifier (ERROR "::__cxx11::basic_string<char,_std::char_traits<char>,_std::allocator<char>_>:" : : (comma_expression "__cxx11::basic_string<char,_std::char_traits<char>,_std" identifier (ERROR "::basic_string<char,_std::char_traits<char>" : : (comma_expression "basic_string<char,_std" (binary_expression "basic_string<char" identifier < identifier) , identifier) : : (binary_expression "char_traits<char" identifier < identifier) >) , identifier) : : (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > :) : (expression_statement "_M_construct<char_const*>();" (binary_expression "_M_construct<char_const" identifier < identifier) (ERROR "*>()" * > ( )) ;)) }) (else_clause "else {\n            *(Task **)((int)ppcVar15 + -0xc) = pTVar10;\n            *(_Alloc_hider **)((int)ppcVar15 + -0x10) = &local_64;\n            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191579;\n            (*(code *)ppuVar4)();\n            local_c8 = local_5c;\n            ppcVar15 = (pointer *)((int)ppcVar15 + -4);\n          }" else (compound_statement "{\n            *(Task **)((int)ppcVar15 + -0xc) = pTVar10;\n            *(_Alloc_hider **)((int)ppcVar15 + -0x10) = &local_64;\n            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191579;\n            (*(code *)ppuVar4)();\n            local_c8 = local_5c;\n            ppcVar15 = (pointer *)((int)ppcVar15 + -4);\n          }" { (expression_statement "*(Task **)((int)ppcVar15 + -0xc) = pTVar10;" (assignment_expression "*(Task **)((int)ppcVar15 + -0xc) = pTVar10" (pointer_expression "*(Task **)((int)ppcVar15 + -0xc)" * (cast_expression "(Task **)((int)ppcVar15 + -0xc)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -0xc)" ( (binary_expression "(int)ppcVar15 + -0xc" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(_Alloc_hider **)((int)ppcVar15 + -0x10) = &local_64;" (assignment_expression "*(_Alloc_hider **)((int)ppcVar15 + -0x10) = &local_64" (pointer_expression "*(_Alloc_hider **)((int)ppcVar15 + -0x10)" * (cast_expression "(_Alloc_hider **)((int)ppcVar15 + -0x10)" ( (type_descriptor "_Alloc_hider **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -0x10)" ( (binary_expression "(int)ppcVar15 + -0x10" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&local_64" & identifier)) ;) (expression_statement "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x191579;" (assignment_expression "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x191579" (pointer_expression "*(undefined4 *)((int)ppcVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0x14)" ( (binary_expression "(int)ppcVar15 + -0x14" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*(code *)ppuVar4)();" (call_expression "(*(code *)ppuVar4)()" (parenthesized_expression "(*(code *)ppuVar4)" ( (pointer_expression "*(code *)ppuVar4" * (cast_expression "(code *)ppuVar4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "local_c8 = local_5c;" (assignment_expression "local_c8 = local_5c" identifier = identifier) ;) (expression_statement "ppcVar15 = (pointer *)((int)ppcVar15 + -4);" (assignment_expression "ppcVar15 = (pointer *)((int)ppcVar15 + -4)" identifier = (cast_expression "(pointer *)((int)ppcVar15 + -4)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -4)" ( (binary_expression "(int)ppcVar15 + -4" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }))) (expression_statement "_Var14._M_p = (pTVar10->name_)._M_dataplus._M_p;" (assignment_expression "_Var14._M_p = (pTVar10->name_)._M_dataplus._M_p" (field_expression "_Var14._M_p" identifier . field_identifier) = (field_expression "(pTVar10->name_)._M_dataplus._M_p" (field_expression "(pTVar10->name_)._M_dataplus" (parenthesized_expression "(pTVar10->name_)" ( (field_expression "pTVar10->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if ((size_type *)local_64._M_p == local_c8) {\n            if (local_60 != 0) {\n              if (local_60 == 1) {\n                *_Var14._M_p = (char)local_5c[0];\n                _Var14._M_p = (pTVar10->name_)._M_dataplus._M_p;\n              }\n              else {\n                *(size_type *)((int)ppcVar15 + -8) = local_60;\n                *(size_type **)((int)ppcVar15 + -0xc) = local_c8;\n                *(pointer *)((int)ppcVar15 + -0x10) = _Var14._M_p;\n                *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19154f;\n                memcpy(*(void **)((int)ppcVar15 + -0x10),*(void **)((int)ppcVar15 + -0xc),\n                       *(size_t *)((int)ppcVar15 + -8));\n                _Var14._M_p = (pTVar10->name_)._M_dataplus._M_p;\n              }\n            }\n            (pTVar10->name_)._M_string_length = local_60;\n            *(_Var14._M_p + local_60) = '\0';\n            _Var14._M_p = local_64._M_p;\n            sVar5 = local_5c[0];\n          }\n          else {\n            if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)_Var14._M_p == &(pTVar10->name_).field_2) {\n              (pTVar10->name_)._M_dataplus._M_p = local_64._M_p;\n              (pTVar10->name_)._M_string_length = local_60;\n              (pTVar10->name_).field_2._M_allocated_capacity = local_5c[0];\n            }\n            else {\n              (pTVar10->name_)._M_dataplus._M_p = local_64._M_p;\n              sVar5 = (pTVar10->name_).field_2._M_allocated_capacity;\n              (pTVar10->name_)._M_string_length = local_60;\n              (pTVar10->name_).field_2._M_allocated_capacity = local_5c[0];\n              local_64._M_p = _Var14._M_p;\n              if ((size_type *)_Var14._M_p != (size_type *)0x0) goto LAB_00191357;\n            }\n            local_64._M_p = (pointer)local_c8;\n            local_c8 = local_5c;\n            _Var14._M_p = (pointer)local_c8;\n            sVar5 = local_5c[0];\n          }" if (parenthesized_expression "((size_type *)local_64._M_p == local_c8)" ( (binary_expression "(size_type *)local_64._M_p == local_c8" (cast_expression "(size_type *)local_64._M_p" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_64._M_p" identifier . field_identifier)) == identifier) )) (compound_statement "{\n            if (local_60 != 0) {\n              if (local_60 == 1) {\n                *_Var14._M_p = (char)local_5c[0];\n                _Var14._M_p = (pTVar10->name_)._M_dataplus._M_p;\n              }\n              else {\n                *(size_type *)((int)ppcVar15 + -8) = local_60;\n                *(size_type **)((int)ppcVar15 + -0xc) = local_c8;\n                *(pointer *)((int)ppcVar15 + -0x10) = _Var14._M_p;\n                *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19154f;\n                memcpy(*(void **)((int)ppcVar15 + -0x10),*(void **)((int)ppcVar15 + -0xc),\n                       *(size_t *)((int)ppcVar15 + -8));\n                _Var14._M_p = (pTVar10->name_)._M_dataplus._M_p;\n              }\n            }\n            (pTVar10->name_)._M_string_length = local_60;\n            *(_Var14._M_p + local_60) = '\0';\n            _Var14._M_p = local_64._M_p;\n            sVar5 = local_5c[0];\n          }" { (if_statement "if (local_60 != 0) {\n              if (local_60 == 1) {\n                *_Var14._M_p = (char)local_5c[0];\n                _Var14._M_p = (pTVar10->name_)._M_dataplus._M_p;\n              }\n              else {\n                *(size_type *)((int)ppcVar15 + -8) = local_60;\n                *(size_type **)((int)ppcVar15 + -0xc) = local_c8;\n                *(pointer *)((int)ppcVar15 + -0x10) = _Var14._M_p;\n                *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19154f;\n                memcpy(*(void **)((int)ppcVar15 + -0x10),*(void **)((int)ppcVar15 + -0xc),\n                       *(size_t *)((int)ppcVar15 + -8));\n                _Var14._M_p = (pTVar10->name_)._M_dataplus._M_p;\n              }\n            }" if (parenthesized_expression "(local_60 != 0)" ( (binary_expression "local_60 != 0" identifier != number_literal) )) (compound_statement "{\n              if (local_60 == 1) {\n                *_Var14._M_p = (char)local_5c[0];\n                _Var14._M_p = (pTVar10->name_)._M_dataplus._M_p;\n              }\n              else {\n                *(size_type *)((int)ppcVar15 + -8) = local_60;\n                *(size_type **)((int)ppcVar15 + -0xc) = local_c8;\n                *(pointer *)((int)ppcVar15 + -0x10) = _Var14._M_p;\n                *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19154f;\n                memcpy(*(void **)((int)ppcVar15 + -0x10),*(void **)((int)ppcVar15 + -0xc),\n                       *(size_t *)((int)ppcVar15 + -8));\n                _Var14._M_p = (pTVar10->name_)._M_dataplus._M_p;\n              }\n            }" { (if_statement "if (local_60 == 1) {\n                *_Var14._M_p = (char)local_5c[0];\n                _Var14._M_p = (pTVar10->name_)._M_dataplus._M_p;\n              }\n              else {\n                *(size_type *)((int)ppcVar15 + -8) = local_60;\n                *(size_type **)((int)ppcVar15 + -0xc) = local_c8;\n                *(pointer *)((int)ppcVar15 + -0x10) = _Var14._M_p;\n                *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19154f;\n                memcpy(*(void **)((int)ppcVar15 + -0x10),*(void **)((int)ppcVar15 + -0xc),\n                       *(size_t *)((int)ppcVar15 + -8));\n                _Var14._M_p = (pTVar10->name_)._M_dataplus._M_p;\n              }" if (parenthesized_expression "(local_60 == 1)" ( (binary_expression "local_60 == 1" identifier == number_literal) )) (compound_statement "{\n                *_Var14._M_p = (char)local_5c[0];\n                _Var14._M_p = (pTVar10->name_)._M_dataplus._M_p;\n              }" { (expression_statement "*_Var14._M_p = (char)local_5c[0];" (assignment_expression "*_Var14._M_p = (char)local_5c[0]" (pointer_expression "*_Var14._M_p" * (field_expression "_Var14._M_p" identifier . field_identifier)) = (cast_expression "(char)local_5c[0]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_5c[0]" identifier [ number_literal ]))) ;) (expression_statement "_Var14._M_p = (pTVar10->name_)._M_dataplus._M_p;" (assignment_expression "_Var14._M_p = (pTVar10->name_)._M_dataplus._M_p" (field_expression "_Var14._M_p" identifier . field_identifier) = (field_expression "(pTVar10->name_)._M_dataplus._M_p" (field_expression "(pTVar10->name_)._M_dataplus" (parenthesized_expression "(pTVar10->name_)" ( (field_expression "pTVar10->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) }) (else_clause "else {\n                *(size_type *)((int)ppcVar15 + -8) = local_60;\n                *(size_type **)((int)ppcVar15 + -0xc) = local_c8;\n                *(pointer *)((int)ppcVar15 + -0x10) = _Var14._M_p;\n                *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19154f;\n                memcpy(*(void **)((int)ppcVar15 + -0x10),*(void **)((int)ppcVar15 + -0xc),\n                       *(size_t *)((int)ppcVar15 + -8));\n                _Var14._M_p = (pTVar10->name_)._M_dataplus._M_p;\n              }" else (compound_statement "{\n                *(size_type *)((int)ppcVar15 + -8) = local_60;\n                *(size_type **)((int)ppcVar15 + -0xc) = local_c8;\n                *(pointer *)((int)ppcVar15 + -0x10) = _Var14._M_p;\n                *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19154f;\n                memcpy(*(void **)((int)ppcVar15 + -0x10),*(void **)((int)ppcVar15 + -0xc),\n                       *(size_t *)((int)ppcVar15 + -8));\n                _Var14._M_p = (pTVar10->name_)._M_dataplus._M_p;\n              }" { (expression_statement "*(size_type *)((int)ppcVar15 + -8) = local_60;" (assignment_expression "*(size_type *)((int)ppcVar15 + -8) = local_60" (pointer_expression "*(size_type *)((int)ppcVar15 + -8)" * (cast_expression "(size_type *)((int)ppcVar15 + -8)" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -8)" ( (binary_expression "(int)ppcVar15 + -8" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(size_type **)((int)ppcVar15 + -0xc) = local_c8;" (assignment_expression "*(size_type **)((int)ppcVar15 + -0xc) = local_c8" (pointer_expression "*(size_type **)((int)ppcVar15 + -0xc)" * (cast_expression "(size_type **)((int)ppcVar15 + -0xc)" ( (type_descriptor "size_type **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -0xc)" ( (binary_expression "(int)ppcVar15 + -0xc" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(pointer *)((int)ppcVar15 + -0x10) = _Var14._M_p;" (assignment_expression "*(pointer *)((int)ppcVar15 + -0x10) = _Var14._M_p" (pointer_expression "*(pointer *)((int)ppcVar15 + -0x10)" * (cast_expression "(pointer *)((int)ppcVar15 + -0x10)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0x10)" ( (binary_expression "(int)ppcVar15 + -0x10" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "_Var14._M_p" identifier . field_identifier)) ;) (expression_statement "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x19154f;" (assignment_expression "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x19154f" (pointer_expression "*(undefined4 *)((int)ppcVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0x14)" ( (binary_expression "(int)ppcVar15 + -0x14" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "memcpy(*(void **)((int)ppcVar15 + -0x10),*(void **)((int)ppcVar15 + -0xc),\n                       *(size_t *)((int)ppcVar15 + -8));" (call_expression "memcpy(*(void **)((int)ppcVar15 + -0x10),*(void **)((int)ppcVar15 + -0xc),\n                       *(size_t *)((int)ppcVar15 + -8))" identifier (argument_list "(*(void **)((int)ppcVar15 + -0x10),*(void **)((int)ppcVar15 + -0xc),\n                       *(size_t *)((int)ppcVar15 + -8))" ( (pointer_expression "*(void **)((int)ppcVar15 + -0x10)" * (cast_expression "(void **)((int)ppcVar15 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -0x10)" ( (binary_expression "(int)ppcVar15 + -0x10" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(void **)((int)ppcVar15 + -0xc)" * (cast_expression "(void **)((int)ppcVar15 + -0xc)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -0xc)" ( (binary_expression "(int)ppcVar15 + -0xc" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)ppcVar15 + -8)" * (cast_expression "(size_t *)((int)ppcVar15 + -8)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -8)" ( (binary_expression "(int)ppcVar15 + -8" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "_Var14._M_p = (pTVar10->name_)._M_dataplus._M_p;" (assignment_expression "_Var14._M_p = (pTVar10->name_)._M_dataplus._M_p" (field_expression "_Var14._M_p" identifier . field_identifier) = (field_expression "(pTVar10->name_)._M_dataplus._M_p" (field_expression "(pTVar10->name_)._M_dataplus" (parenthesized_expression "(pTVar10->name_)" ( (field_expression "pTVar10->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) }))) })) (expression_statement "(pTVar10->name_)._M_string_length = local_60;" (assignment_expression "(pTVar10->name_)._M_string_length = local_60" (field_expression "(pTVar10->name_)._M_string_length" (parenthesized_expression "(pTVar10->name_)" ( (field_expression "pTVar10->name_" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "*(_Var14._M_p + local_60) = '\0';" (assignment_expression "*(_Var14._M_p + local_60) = '\0'" (pointer_expression "*(_Var14._M_p + local_60)" * (parenthesized_expression "(_Var14._M_p + local_60)" ( (binary_expression "_Var14._M_p + local_60" (field_expression "_Var14._M_p" identifier . field_identifier) + identifier) ))) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "_Var14._M_p = local_64._M_p;" (assignment_expression "_Var14._M_p = local_64._M_p" (field_expression "_Var14._M_p" identifier . field_identifier) = (field_expression "local_64._M_p" identifier . field_identifier)) ;) (expression_statement "sVar5 = local_5c[0];" (assignment_expression "sVar5 = local_5c[0]" identifier = (subscript_expression "local_5c[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                 *)_Var14._M_p == &(pTVar10->name_).field_2) {\n              (pTVar10->name_)._M_dataplus._M_p = local_64._M_p;\n              (pTVar10->name_)._M_string_length = local_60;\n              (pTVar10->name_).field_2._M_allocated_capacity = local_5c[0];\n            }\n            else {\n              (pTVar10->name_)._M_dataplus._M_p = local_64._M_p;\n              sVar5 = (pTVar10->name_).field_2._M_allocated_capacity;\n              (pTVar10->name_)._M_string_length = local_60;\n              (pTVar10->name_).field_2._M_allocated_capacity = local_5c[0];\n              local_64._M_p = _Var14._M_p;\n              if ((size_type *)_Var14._M_p != (size_type *)0x0) goto LAB_00191357;\n            }\n            local_64._M_p = (pointer)local_c8;\n            local_c8 = local_5c;\n            _Var14._M_p = (pointer)local_c8;\n            sVar5 = local_5c[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                 *)_Var14._M_p == &(pTVar10->name_).field_2) {\n              (pTVar10->name_)._M_dataplus._M_p = local_64._M_p;\n              (pTVar10->name_)._M_string_length = local_60;\n              (pTVar10->name_).field_2._M_allocated_capacity = local_5c[0];\n            }\n            else {\n              (pTVar10->name_)._M_dataplus._M_p = local_64._M_p;\n              sVar5 = (pTVar10->name_).field_2._M_allocated_capacity;\n              (pTVar10->name_)._M_string_length = local_60;\n              (pTVar10->name_).field_2._M_allocated_capacity = local_5c[0];\n              local_64._M_p = _Var14._M_p;\n              if ((size_type *)_Var14._M_p != (size_type *)0x0) goto LAB_00191357;\n            }\n            local_64._M_p = (pointer)local_c8;\n            local_c8 = local_5c;\n            _Var14._M_p = (pointer)local_c8;\n            sVar5 = local_5c[0];\n          }" { (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)_Var14._M_p == &(pTVar10->name_).field_2) {\n              (pTVar10->name_)._M_dataplus._M_p = local_64._M_p;\n              (pTVar10->name_)._M_string_length = local_60;\n              (pTVar10->name_).field_2._M_allocated_capacity = local_5c[0];\n            }\n            else {\n              (pTVar10->name_)._M_dataplus._M_p = local_64._M_p;\n              sVar5 = (pTVar10->name_).field_2._M_allocated_capacity;\n              (pTVar10->name_)._M_string_length = local_60;\n              (pTVar10->name_).field_2._M_allocated_capacity = local_5c[0];\n              local_64._M_p = _Var14._M_p;\n              if ((size_type *)_Var14._M_p != (size_type *)0x0) goto LAB_00191357;\n            }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)_Var14._M_p == &(pTVar10->name_).field_2)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n                 *)_Var14._M_p == &(pTVar10->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                 *)_Var14._M_p == &(pTVar10->name_).field_2" (binary_expression "allocator<char>_>_9\n                 *)_Var14._M_p" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n                 *)_Var14._M_p" identifier * (ERROR ")" )) (field_expression "_Var14._M_p" identifier . field_identifier))) == (pointer_expression "&(pTVar10->name_).field_2" & (field_expression "(pTVar10->name_).field_2" (parenthesized_expression "(pTVar10->name_)" ( (field_expression "pTVar10->name_" identifier -> field_identifier) )) . field_identifier))) )) )) (compound_statement "{\n              (pTVar10->name_)._M_dataplus._M_p = local_64._M_p;\n              (pTVar10->name_)._M_string_length = local_60;\n              (pTVar10->name_).field_2._M_allocated_capacity = local_5c[0];\n            }" { (expression_statement "(pTVar10->name_)._M_dataplus._M_p = local_64._M_p;" (assignment_expression "(pTVar10->name_)._M_dataplus._M_p = local_64._M_p" (field_expression "(pTVar10->name_)._M_dataplus._M_p" (field_expression "(pTVar10->name_)._M_dataplus" (parenthesized_expression "(pTVar10->name_)" ( (field_expression "pTVar10->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (field_expression "local_64._M_p" identifier . field_identifier)) ;) (expression_statement "(pTVar10->name_)._M_string_length = local_60;" (assignment_expression "(pTVar10->name_)._M_string_length = local_60" (field_expression "(pTVar10->name_)._M_string_length" (parenthesized_expression "(pTVar10->name_)" ( (field_expression "pTVar10->name_" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(pTVar10->name_).field_2._M_allocated_capacity = local_5c[0];" (assignment_expression "(pTVar10->name_).field_2._M_allocated_capacity = local_5c[0]" (field_expression "(pTVar10->name_).field_2._M_allocated_capacity" (field_expression "(pTVar10->name_).field_2" (parenthesized_expression "(pTVar10->name_)" ( (field_expression "pTVar10->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (subscript_expression "local_5c[0]" identifier [ number_literal ])) ;) }) (else_clause "else {\n              (pTVar10->name_)._M_dataplus._M_p = local_64._M_p;\n              sVar5 = (pTVar10->name_).field_2._M_allocated_capacity;\n              (pTVar10->name_)._M_string_length = local_60;\n              (pTVar10->name_).field_2._M_allocated_capacity = local_5c[0];\n              local_64._M_p = _Var14._M_p;\n              if ((size_type *)_Var14._M_p != (size_type *)0x0) goto LAB_00191357;\n            }" else (compound_statement "{\n              (pTVar10->name_)._M_dataplus._M_p = local_64._M_p;\n              sVar5 = (pTVar10->name_).field_2._M_allocated_capacity;\n              (pTVar10->name_)._M_string_length = local_60;\n              (pTVar10->name_).field_2._M_allocated_capacity = local_5c[0];\n              local_64._M_p = _Var14._M_p;\n              if ((size_type *)_Var14._M_p != (size_type *)0x0) goto LAB_00191357;\n            }" { (expression_statement "(pTVar10->name_)._M_dataplus._M_p = local_64._M_p;" (assignment_expression "(pTVar10->name_)._M_dataplus._M_p = local_64._M_p" (field_expression "(pTVar10->name_)._M_dataplus._M_p" (field_expression "(pTVar10->name_)._M_dataplus" (parenthesized_expression "(pTVar10->name_)" ( (field_expression "pTVar10->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (field_expression "local_64._M_p" identifier . field_identifier)) ;) (expression_statement "sVar5 = (pTVar10->name_).field_2._M_allocated_capacity;" (assignment_expression "sVar5 = (pTVar10->name_).field_2._M_allocated_capacity" identifier = (field_expression "(pTVar10->name_).field_2._M_allocated_capacity" (field_expression "(pTVar10->name_).field_2" (parenthesized_expression "(pTVar10->name_)" ( (field_expression "pTVar10->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "(pTVar10->name_)._M_string_length = local_60;" (assignment_expression "(pTVar10->name_)._M_string_length = local_60" (field_expression "(pTVar10->name_)._M_string_length" (parenthesized_expression "(pTVar10->name_)" ( (field_expression "pTVar10->name_" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(pTVar10->name_).field_2._M_allocated_capacity = local_5c[0];" (assignment_expression "(pTVar10->name_).field_2._M_allocated_capacity = local_5c[0]" (field_expression "(pTVar10->name_).field_2._M_allocated_capacity" (field_expression "(pTVar10->name_).field_2" (parenthesized_expression "(pTVar10->name_)" ( (field_expression "pTVar10->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (subscript_expression "local_5c[0]" identifier [ number_literal ])) ;) (expression_statement "local_64._M_p = _Var14._M_p;" (assignment_expression "local_64._M_p = _Var14._M_p" (field_expression "local_64._M_p" identifier . field_identifier) = (field_expression "_Var14._M_p" identifier . field_identifier)) ;) (if_statement "if ((size_type *)_Var14._M_p != (size_type *)0x0) goto LAB_00191357;" if (parenthesized_expression "((size_type *)_Var14._M_p != (size_type *)0x0)" ( (binary_expression "(size_type *)_Var14._M_p != (size_type *)0x0" (cast_expression "(size_type *)_Var14._M_p" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "_Var14._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_00191357;" goto statement_identifier ;)) }))) (expression_statement "local_64._M_p = (pointer)local_c8;" (assignment_expression "local_64._M_p = (pointer)local_c8" (field_expression "local_64._M_p" identifier . field_identifier) = (cast_expression "(pointer)local_c8" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "local_c8 = local_5c;" (assignment_expression "local_c8 = local_5c" identifier = identifier) ;) (expression_statement "_Var14._M_p = (pointer)local_c8;" (assignment_expression "_Var14._M_p = (pointer)local_c8" (field_expression "_Var14._M_p" identifier . field_identifier) = (cast_expression "(pointer)local_c8" ( (type_descriptor "pointer" type_identifier) ) identifier)) ;) (expression_statement "sVar5 = local_5c[0];" (assignment_expression "sVar5 = local_5c[0]" identifier = (subscript_expression "local_5c[0]" identifier [ number_literal ])) ;) }))) (labeled_statement "LAB_00191357:\n          local_5c[0] = sVar5;" statement_identifier : (expression_statement "local_5c[0] = sVar5;" (assignment_expression "local_5c[0] = sVar5" (subscript_expression "local_5c[0]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (expression_statement "*_Var14._M_p = '\0';" (assignment_expression "*_Var14._M_p = '\0'" (pointer_expression "*_Var14._M_p" * (field_expression "_Var14._M_p" identifier . field_identifier)) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if ((size_type *)local_64._M_p != local_c8) {\n            *(pointer *)((int)ppcVar15 + -0x10) = local_64._M_p;\n            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19137b;\n            operator_delete(*(void **)((int)ppcVar15 + -0x10));\n          }" if (parenthesized_expression "((size_type *)local_64._M_p != local_c8)" ( (binary_expression "(size_type *)local_64._M_p != local_c8" (cast_expression "(size_type *)local_64._M_p" ( (type_descriptor "size_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_64._M_p" identifier . field_identifier)) != identifier) )) (compound_statement "{\n            *(pointer *)((int)ppcVar15 + -0x10) = local_64._M_p;\n            *(undefined4 *)((int)ppcVar15 + -0x14) = 0x19137b;\n            operator_delete(*(void **)((int)ppcVar15 + -0x10));\n          }" { (expression_statement "*(pointer *)((int)ppcVar15 + -0x10) = local_64._M_p;" (assignment_expression "*(pointer *)((int)ppcVar15 + -0x10) = local_64._M_p" (pointer_expression "*(pointer *)((int)ppcVar15 + -0x10)" * (cast_expression "(pointer *)((int)ppcVar15 + -0x10)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0x10)" ( (binary_expression "(int)ppcVar15 + -0x10" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "local_64._M_p" identifier . field_identifier)) ;) (expression_statement "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x19137b;" (assignment_expression "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x19137b" (pointer_expression "*(undefined4 *)((int)ppcVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0x14)" ( (binary_expression "(int)ppcVar15 + -0x14" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "operator_delete(*(void **)((int)ppcVar15 + -0x10));" (call_expression "operator_delete(*(void **)((int)ppcVar15 + -0x10))" identifier (argument_list "(*(void **)((int)ppcVar15 + -0x10))" ( (pointer_expression "*(void **)((int)ppcVar15 + -0x10)" * (cast_expression "(void **)((int)ppcVar15 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -0x10)" ( (binary_expression "(int)ppcVar15 + -0x10" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) })) (expression_statement "*(Task **)((int)ppcVar15 + -0xc) = local_98;" (assignment_expression "*(Task **)((int)ppcVar15 + -0xc) = local_98" (pointer_expression "*(Task **)((int)ppcVar15 + -0xc)" * (cast_expression "(Task **)((int)ppcVar15 + -0xc)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -0xc)" ( (binary_expression "(int)ppcVar15 + -0xc" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)ppcVar15 + -0x10) = local_bc;" (assignment_expression "*(int *)((int)ppcVar15 + -0x10) = local_bc" (pointer_expression "*(int *)((int)ppcVar15 + -0x10)" * (cast_expression "(int *)((int)ppcVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0x10)" ( (binary_expression "(int)ppcVar15 + -0x10" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(pointer *)((int)ppcVar15 + -0x14) = local_b0;" (assignment_expression "*(pointer *)((int)ppcVar15 + -0x14) = local_b0" (pointer_expression "*(pointer *)((int)ppcVar15 + -0x14)" * (cast_expression "(pointer *)((int)ppcVar15 + -0x14)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0x14)" ( (binary_expression "(int)ppcVar15 + -0x14" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)ppcVar15 + -0x18) = local_c0;" (assignment_expression "*(int *)((int)ppcVar15 + -0x18) = local_c0" (pointer_expression "*(int *)((int)ppcVar15 + -0x18)" * (cast_expression "(int *)((int)ppcVar15 + -0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0x18)" ( (binary_expression "(int)ppcVar15 + -0x18" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)ppcVar15 + -0x1c) = local_b4;" (assignment_expression "*(int *)((int)ppcVar15 + -0x1c) = local_b4" (pointer_expression "*(int *)((int)ppcVar15 + -0x1c)" * (cast_expression "(int *)((int)ppcVar15 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0x1c)" ( (binary_expression "(int)ppcVar15 + -0x1c" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)ppcVar15 + -0x20) = local_c4;" (assignment_expression "*(int *)((int)ppcVar15 + -0x20) = local_c4" (pointer_expression "*(int *)((int)ppcVar15 + -0x20)" * (cast_expression "(int *)((int)ppcVar15 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0x20)" ( (binary_expression "(int)ppcVar15 + -0x20" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(pointer *)((int)ppcVar15 + -0x24) = (pTVar10->name_)._M_dataplus._M_p;" (assignment_expression "*(pointer *)((int)ppcVar15 + -0x24) = (pTVar10->name_)._M_dataplus._M_p" (pointer_expression "*(pointer *)((int)ppcVar15 + -0x24)" * (cast_expression "(pointer *)((int)ppcVar15 + -0x24)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0x24)" ( (binary_expression "(int)ppcVar15 + -0x24" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "(pTVar10->name_)._M_dataplus._M_p" (field_expression "(pTVar10->name_)._M_dataplus" (parenthesized_expression "(pTVar10->name_)" ( (field_expression "pTVar10->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "*(int *)((int)ppcVar15 + -0x28) = thread_number;" (assignment_expression "*(int *)((int)ppcVar15 + -0x28) = thread_number" (pointer_expression "*(int *)((int)ppcVar15 + -0x28)" * (cast_expression "(int *)((int)ppcVar15 + -0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0x28)" ( (binary_expression "(int)ppcVar15 + -0x28" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)((int)ppcVar15 + -0x2c) = local_90 + -0x3d24b;" (assignment_expression "*(undefined ***)((int)ppcVar15 + -0x2c) = local_90 + -0x3d24b" (pointer_expression "*(undefined ***)((int)ppcVar15 + -0x2c)" * (cast_expression "(undefined ***)((int)ppcVar15 + -0x2c)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar15 + -0x2c)" ( (binary_expression "(int)ppcVar15 + -0x2c" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_90 + -0x3d24b" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)ppcVar15 + -0x30) = local_b8;" (assignment_expression "*(undefined4 *)((int)ppcVar15 + -0x30) = local_b8" (pointer_expression "*(undefined4 *)((int)ppcVar15 + -0x30)" * (cast_expression "(undefined4 *)((int)ppcVar15 + -0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0x30)" ( (binary_expression "(int)ppcVar15 + -0x30" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppcVar15 + -0x34) = 0x1913c3;" (assignment_expression "*(undefined4 *)((int)ppcVar15 + -0x34) = 0x1913c3" (pointer_expression "*(undefined4 *)((int)ppcVar15 + -0x34)" * (cast_expression "(undefined4 *)((int)ppcVar15 + -0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0x34)" ( (binary_expression "(int)ppcVar15 + -0x34" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "Errors::debug(*(Errors **)((int)ppcVar15 + -0x30),*(char **)((int)ppcVar15 + -0x2c));" statement_identifier : (ERROR ":" :) (expression_statement "debug(*(Errors **)((int)ppcVar15 + -0x30),*(char **)((int)ppcVar15 + -0x2c));" (call_expression "debug(*(Errors **)((int)ppcVar15 + -0x30),*(char **)((int)ppcVar15 + -0x2c))" identifier (argument_list "(*(Errors **)((int)ppcVar15 + -0x30),*(char **)((int)ppcVar15 + -0x2c))" ( (pointer_expression "*(Errors **)((int)ppcVar15 + -0x30)" * (cast_expression "(Errors **)((int)ppcVar15 + -0x30)" ( (type_descriptor "Errors **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -0x30)" ( (binary_expression "(int)ppcVar15 + -0x30" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)ppcVar15 + -0x2c)" * (cast_expression "(char **)((int)ppcVar15 + -0x2c)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -0x2c)" ( (binary_expression "(int)ppcVar15 + -0x2c" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;)) })) })) (expression_statement "pLVar1 = (this->lock_).lock_;" (assignment_expression "pLVar1 = (this->lock_).lock_" identifier = (field_expression "(this->lock_).lock_" (parenthesized_expression "(this->lock_)" ( (field_expression "this->lock_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pp_Var6 = pLVar1->_vptr_Lock_impl;" (assignment_expression "pp_Var6 = pLVar1->_vptr_Lock_impl" identifier = (field_expression "pLVar1->_vptr_Lock_impl" identifier -> field_identifier)) ;) (expression_statement "*(Lock_impl **)((int)ppcVar15 + -0x10) = pLVar1;" (assignment_expression "*(Lock_impl **)((int)ppcVar15 + -0x10) = pLVar1" (pointer_expression "*(Lock_impl **)((int)ppcVar15 + -0x10)" * (cast_expression "(Lock_impl **)((int)ppcVar15 + -0x10)" ( (type_descriptor "Lock_impl **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -0x10)" ( (binary_expression "(int)ppcVar15 + -0x10" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "p_Var7 = pp_Var6[2];" (assignment_expression "p_Var7 = pp_Var6[2]" identifier = (subscript_expression "pp_Var6[2]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x190f43;" (assignment_expression "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x190f43" (pointer_expression "*(undefined4 *)((int)ppcVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0x14)" ( (binary_expression "(int)ppcVar15 + -0x14" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*p_Var7)();" (call_expression "(*p_Var7)()" (parenthesized_expression "(*p_Var7)" ( (pointer_expression "*p_Var7" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "this->running_ = this->running_ + -1;" (assignment_expression "this->running_ = this->running_ + -1" (field_expression "this->running_" identifier -> field_identifier) = (binary_expression "this->running_ + -1" (field_expression "this->running_" identifier -> field_identifier) + number_literal)) ;) (expression_statement "*(Task_locker **)((int)ppcVar15 + -8) = local_a0;" (assignment_expression "*(Task_locker **)((int)ppcVar15 + -8) = local_a0" (pointer_expression "*(Task_locker **)((int)ppcVar15 + -8)" * (cast_expression "(Task_locker **)((int)ppcVar15 + -8)" ( (type_descriptor "Task_locker **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -8)" ( (binary_expression "(int)ppcVar15 + -8" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Task **)((int)ppcVar15 + -0xc) = pTVar10;" (assignment_expression "*(Task **)((int)ppcVar15 + -0xc) = pTVar10" (pointer_expression "*(Task **)((int)ppcVar15 + -0xc)" * (cast_expression "(Task **)((int)ppcVar15 + -0xc)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -0xc)" ( (binary_expression "(int)ppcVar15 + -0xc" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Workqueue **)((int)ppcVar15 + -0x10) = this;" (assignment_expression "*(Workqueue **)((int)ppcVar15 + -0x10) = this" (pointer_expression "*(Workqueue **)((int)ppcVar15 + -0x10)" * (cast_expression "(Workqueue **)((int)ppcVar15 + -0x10)" ( (type_descriptor "Workqueue **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -0x10)" ( (binary_expression "(int)ppcVar15 + -0x10" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x190f57;" (assignment_expression "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x190f57" (pointer_expression "*(undefined4 *)((int)ppcVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0x14)" ( (binary_expression "(int)ppcVar15 + -0x14" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_98 = release_locks(*(Workqueue **)((int)ppcVar15 + -0x10),*(Task **)((int)ppcVar15 + -0xc)\n                             ,*(Task_locker **)((int)ppcVar15 + -8));" (assignment_expression "local_98 = release_locks(*(Workqueue **)((int)ppcVar15 + -0x10),*(Task **)((int)ppcVar15 + -0xc)\n                             ,*(Task_locker **)((int)ppcVar15 + -8))" identifier = (call_expression "release_locks(*(Workqueue **)((int)ppcVar15 + -0x10),*(Task **)((int)ppcVar15 + -0xc)\n                             ,*(Task_locker **)((int)ppcVar15 + -8))" identifier (argument_list "(*(Workqueue **)((int)ppcVar15 + -0x10),*(Task **)((int)ppcVar15 + -0xc)\n                             ,*(Task_locker **)((int)ppcVar15 + -8))" ( (pointer_expression "*(Workqueue **)((int)ppcVar15 + -0x10)" * (cast_expression "(Workqueue **)((int)ppcVar15 + -0x10)" ( (type_descriptor "Workqueue **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -0x10)" ( (binary_expression "(int)ppcVar15 + -0x10" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(Task **)((int)ppcVar15 + -0xc)" * (cast_expression "(Task **)((int)ppcVar15 + -0xc)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -0xc)" ( (binary_expression "(int)ppcVar15 + -0xc" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(Task_locker **)((int)ppcVar15 + -8)" * (cast_expression "(Task_locker **)((int)ppcVar15 + -8)" ( (type_descriptor "Task_locker **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -8)" ( (binary_expression "(int)ppcVar15 + -8" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (if_statement "if (local_98 == (Task *)0x0) {\n      *(Workqueue **)((int)ppcVar15 + -0x10) = this;\n                    /* try { // try from 00191414 to 00191440 has its CatchHandler @ 001915f9 */\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191419;\n      local_98 = find_runnable(*(Workqueue **)((int)ppcVar15 + -0x10));\n      if (local_98 != (Task *)0x0) goto LAB_00190f68;\n    }\n    else {\nLAB_00190f68:\n      tl.count_ = 0;\n      ppuVar4 = (undefined **)local_98->_vptr_Task[3];\n      if (ppuVar4 != local_ac) {\n        *(Task_locker **)((int)ppcVar15 + -0xc) = local_a0;\n        *(Task **)((int)ppcVar15 + -0x10) = local_98;\n        *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191441;\n        (*(code *)ppuVar4)();\n      }\n      this->running_ = this->running_ + 1;\n    }" if (parenthesized_expression "(local_98 == (Task *)0x0)" ( (binary_expression "local_98 == (Task *)0x0" identifier == (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      *(Workqueue **)((int)ppcVar15 + -0x10) = this;\n                    /* try { // try from 00191414 to 00191440 has its CatchHandler @ 001915f9 */\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191419;\n      local_98 = find_runnable(*(Workqueue **)((int)ppcVar15 + -0x10));\n      if (local_98 != (Task *)0x0) goto LAB_00190f68;\n    }" { (expression_statement "*(Workqueue **)((int)ppcVar15 + -0x10) = this;" (assignment_expression "*(Workqueue **)((int)ppcVar15 + -0x10) = this" (pointer_expression "*(Workqueue **)((int)ppcVar15 + -0x10)" * (cast_expression "(Workqueue **)((int)ppcVar15 + -0x10)" ( (type_descriptor "Workqueue **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -0x10)" ( (binary_expression "(int)ppcVar15 + -0x10" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) comment (expression_statement "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x191419;" (assignment_expression "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x191419" (pointer_expression "*(undefined4 *)((int)ppcVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0x14)" ( (binary_expression "(int)ppcVar15 + -0x14" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_98 = find_runnable(*(Workqueue **)((int)ppcVar15 + -0x10));" (assignment_expression "local_98 = find_runnable(*(Workqueue **)((int)ppcVar15 + -0x10))" identifier = (call_expression "find_runnable(*(Workqueue **)((int)ppcVar15 + -0x10))" identifier (argument_list "(*(Workqueue **)((int)ppcVar15 + -0x10))" ( (pointer_expression "*(Workqueue **)((int)ppcVar15 + -0x10)" * (cast_expression "(Workqueue **)((int)ppcVar15 + -0x10)" ( (type_descriptor "Workqueue **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -0x10)" ( (binary_expression "(int)ppcVar15 + -0x10" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (if_statement "if (local_98 != (Task *)0x0) goto LAB_00190f68;" if (parenthesized_expression "(local_98 != (Task *)0x0)" ( (binary_expression "local_98 != (Task *)0x0" identifier != (cast_expression "(Task *)0x0" ( (type_descriptor "Task *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00190f68;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_00190f68:\n      tl.count_ = 0;\n      ppuVar4 = (undefined **)local_98->_vptr_Task[3];\n      if (ppuVar4 != local_ac) {\n        *(Task_locker **)((int)ppcVar15 + -0xc) = local_a0;\n        *(Task **)((int)ppcVar15 + -0x10) = local_98;\n        *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191441;\n        (*(code *)ppuVar4)();\n      }\n      this->running_ = this->running_ + 1;\n    }" else (compound_statement "{\nLAB_00190f68:\n      tl.count_ = 0;\n      ppuVar4 = (undefined **)local_98->_vptr_Task[3];\n      if (ppuVar4 != local_ac) {\n        *(Task_locker **)((int)ppcVar15 + -0xc) = local_a0;\n        *(Task **)((int)ppcVar15 + -0x10) = local_98;\n        *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191441;\n        (*(code *)ppuVar4)();\n      }\n      this->running_ = this->running_ + 1;\n    }" { (labeled_statement "LAB_00190f68:\n      tl.count_ = 0;" statement_identifier : (expression_statement "tl.count_ = 0;" (assignment_expression "tl.count_ = 0" (field_expression "tl.count_" identifier . field_identifier) = number_literal) ;)) (expression_statement "ppuVar4 = (undefined **)local_98->_vptr_Task[3];" (assignment_expression "ppuVar4 = (undefined **)local_98->_vptr_Task[3]" identifier = (cast_expression "(undefined **)local_98->_vptr_Task[3]" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "local_98->_vptr_Task[3]" (field_expression "local_98->_vptr_Task" identifier -> field_identifier) [ number_literal ]))) ;) (if_statement "if (ppuVar4 != local_ac) {\n        *(Task_locker **)((int)ppcVar15 + -0xc) = local_a0;\n        *(Task **)((int)ppcVar15 + -0x10) = local_98;\n        *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191441;\n        (*(code *)ppuVar4)();\n      }" if (parenthesized_expression "(ppuVar4 != local_ac)" ( (binary_expression "ppuVar4 != local_ac" identifier != identifier) )) (compound_statement "{\n        *(Task_locker **)((int)ppcVar15 + -0xc) = local_a0;\n        *(Task **)((int)ppcVar15 + -0x10) = local_98;\n        *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191441;\n        (*(code *)ppuVar4)();\n      }" { (expression_statement "*(Task_locker **)((int)ppcVar15 + -0xc) = local_a0;" (assignment_expression "*(Task_locker **)((int)ppcVar15 + -0xc) = local_a0" (pointer_expression "*(Task_locker **)((int)ppcVar15 + -0xc)" * (cast_expression "(Task_locker **)((int)ppcVar15 + -0xc)" ( (type_descriptor "Task_locker **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -0xc)" ( (binary_expression "(int)ppcVar15 + -0xc" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(Task **)((int)ppcVar15 + -0x10) = local_98;" (assignment_expression "*(Task **)((int)ppcVar15 + -0x10) = local_98" (pointer_expression "*(Task **)((int)ppcVar15 + -0x10)" * (cast_expression "(Task **)((int)ppcVar15 + -0x10)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -0x10)" ( (binary_expression "(int)ppcVar15 + -0x10" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x191441;" (assignment_expression "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x191441" (pointer_expression "*(undefined4 *)((int)ppcVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0x14)" ( (binary_expression "(int)ppcVar15 + -0x14" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*(code *)ppuVar4)();" (call_expression "(*(code *)ppuVar4)()" (parenthesized_expression "(*(code *)ppuVar4)" ( (pointer_expression "*(code *)ppuVar4" * (cast_expression "(code *)ppuVar4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "this->running_ = this->running_ + 1;" (assignment_expression "this->running_ = this->running_ + 1" (field_expression "this->running_" identifier -> field_identifier) = (binary_expression "this->running_ + 1" (field_expression "this->running_" identifier -> field_identifier) + number_literal)) ;) }))) (expression_statement "pLVar1 = (this->lock_).lock_;" (assignment_expression "pLVar1 = (this->lock_).lock_" identifier = (field_expression "(this->lock_).lock_" (parenthesized_expression "(this->lock_)" ( (field_expression "this->lock_" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pp_Var6 = pLVar1->_vptr_Lock_impl;" (assignment_expression "pp_Var6 = pLVar1->_vptr_Lock_impl" identifier = (field_expression "pLVar1->_vptr_Lock_impl" identifier -> field_identifier)) ;) (expression_statement "*(Lock_impl **)((int)ppcVar15 + -0x10) = pLVar1;" (assignment_expression "*(Lock_impl **)((int)ppcVar15 + -0x10) = pLVar1" (pointer_expression "*(Lock_impl **)((int)ppcVar15 + -0x10)" * (cast_expression "(Lock_impl **)((int)ppcVar15 + -0x10)" ( (type_descriptor "Lock_impl **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -0x10)" ( (binary_expression "(int)ppcVar15 + -0x10" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "p_Var7 = pp_Var6[3];" (assignment_expression "p_Var7 = pp_Var6[3]" identifier = (subscript_expression "pp_Var6[3]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x190f95;" (assignment_expression "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x190f95" (pointer_expression "*(undefined4 *)((int)ppcVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0x14)" ( (binary_expression "(int)ppcVar15 + -0x14" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*p_Var7)();" (call_expression "(*p_Var7)()" (parenthesized_expression "(*p_Var7)" ( (pointer_expression "*p_Var7" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "ppuVar4 = (undefined **)pTVar10->_vptr_Task[1];" (assignment_expression "ppuVar4 = (undefined **)pTVar10->_vptr_Task[1]" identifier = (cast_expression "(undefined **)pTVar10->_vptr_Task[1]" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (subscript_expression "pTVar10->_vptr_Task[1]" (field_expression "pTVar10->_vptr_Task" identifier -> field_identifier) [ number_literal ]))) ;) (if_statement "if (ppuVar4 == local_90 + -0xc8ab8) {\n      pTVar10->_vptr_Task = (_func_int_varargs **)(local_90 + -0x307b);\n      pp_Var6 = pTVar10[1]._vptr_Task;\n      if (pp_Var6 != (_func_int_varargs **)0x0) {\n        p_Var7 = *pp_Var6;\n        *(_func_int_varargs ***)((int)ppcVar15 + -0x10) = pp_Var6;\n        pcVar8 = *(code **)(p_Var7 + 4);\n        *(undefined4 *)((int)ppcVar15 + -0x14) = 0x190fc9;\n        (*pcVar8)();\n      }\n      pTVar2 = pTVar10[1].list_next_;\n      if (pTVar2 != (Task *)0x0) {\n        if (pTVar2->list_next_ != (Task *)0x0) {\n          *(undefined ***)((int)ppcVar15 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)ppcVar15 + -0xc) = 100;\n          *(int *)((int)ppcVar15 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1915d4;\n          do_gold_unreachable(*(char **)((int)ppcVar15 + -0x10),*(int *)((int)ppcVar15 + -0xc),\n                              *(char **)((int)ppcVar15 + -8));\n        }\n        if ((pTVar2->name_)._M_dataplus._M_p != (pointer)0x0) {\n          *(undefined ***)((int)ppcVar15 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)ppcVar15 + -0xc) = 0x65;\n          *(int *)((int)ppcVar15 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined1 **)((int)ppcVar15 + -0x14) = &LAB_001915f2;\n          do_gold_unreachable(*(char **)((int)ppcVar15 + -0x10),*(int *)((int)ppcVar15 + -0xc),\n                              *(char **)((int)ppcVar15 + -8));\n        }\n        if (((pTVar2->name_)._M_string_length != 0) ||\n           ((pTVar2->name_).field_2._M_allocated_capacity != 0)) {\n          *(undefined ***)((int)ppcVar15 + -8) = local_90 + -0x3d215;\n          *(undefined4 *)((int)ppcVar15 + -0xc) = 0x2c;\n          *(int *)((int)ppcVar15 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1915b6;\n          do_gold_unreachable(*(char **)((int)ppcVar15 + -0x10),*(int *)((int)ppcVar15 + -0xc),\n                              *(char **)((int)ppcVar15 + -8));\n        }\n        *(undefined4 *)((int)ppcVar15 + -0xc) = 0x14;\n        *(Task **)((int)ppcVar15 + -0x10) = pTVar2;\n        *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191010;\n        operator_delete(*(void **)((int)ppcVar15 + -0x10),*(uint *)((int)ppcVar15 + -0xc));\n      }\n      pTVar10->_vptr_Task = (_func_int_varargs **)(local_90 + -0x1717);\n      pcVar13 = (pTVar10->name_)._M_dataplus._M_p;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)pcVar13 != &(pTVar10->name_).field_2) {\n        *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;\n        *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191034;\n        operator_delete(*(void **)((int)ppcVar15 + -0x10));\n      }\n      *(undefined4 *)((int)ppcVar15 + -0xc) = 0x30;\n      *(Task **)((int)ppcVar15 + -0x10) = pTVar10;\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191048;\n      operator_delete(*(void **)((int)ppcVar15 + -0x10),*(uint *)((int)ppcVar15 + -0xc));\n      pTVar10 = local_98;\n    }\n    else {\n      *(Task **)((int)ppcVar15 + -0x10) = pTVar10;\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1913d6;\n      (*(code *)ppuVar4)();\n      pTVar10 = local_98;\n    }" if (parenthesized_expression "(ppuVar4 == local_90 + -0xc8ab8)" ( (binary_expression "ppuVar4 == local_90 + -0xc8ab8" identifier == (binary_expression "local_90 + -0xc8ab8" identifier + number_literal)) )) (compound_statement "{\n      pTVar10->_vptr_Task = (_func_int_varargs **)(local_90 + -0x307b);\n      pp_Var6 = pTVar10[1]._vptr_Task;\n      if (pp_Var6 != (_func_int_varargs **)0x0) {\n        p_Var7 = *pp_Var6;\n        *(_func_int_varargs ***)((int)ppcVar15 + -0x10) = pp_Var6;\n        pcVar8 = *(code **)(p_Var7 + 4);\n        *(undefined4 *)((int)ppcVar15 + -0x14) = 0x190fc9;\n        (*pcVar8)();\n      }\n      pTVar2 = pTVar10[1].list_next_;\n      if (pTVar2 != (Task *)0x0) {\n        if (pTVar2->list_next_ != (Task *)0x0) {\n          *(undefined ***)((int)ppcVar15 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)ppcVar15 + -0xc) = 100;\n          *(int *)((int)ppcVar15 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1915d4;\n          do_gold_unreachable(*(char **)((int)ppcVar15 + -0x10),*(int *)((int)ppcVar15 + -0xc),\n                              *(char **)((int)ppcVar15 + -8));\n        }\n        if ((pTVar2->name_)._M_dataplus._M_p != (pointer)0x0) {\n          *(undefined ***)((int)ppcVar15 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)ppcVar15 + -0xc) = 0x65;\n          *(int *)((int)ppcVar15 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined1 **)((int)ppcVar15 + -0x14) = &LAB_001915f2;\n          do_gold_unreachable(*(char **)((int)ppcVar15 + -0x10),*(int *)((int)ppcVar15 + -0xc),\n                              *(char **)((int)ppcVar15 + -8));\n        }\n        if (((pTVar2->name_)._M_string_length != 0) ||\n           ((pTVar2->name_).field_2._M_allocated_capacity != 0)) {\n          *(undefined ***)((int)ppcVar15 + -8) = local_90 + -0x3d215;\n          *(undefined4 *)((int)ppcVar15 + -0xc) = 0x2c;\n          *(int *)((int)ppcVar15 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1915b6;\n          do_gold_unreachable(*(char **)((int)ppcVar15 + -0x10),*(int *)((int)ppcVar15 + -0xc),\n                              *(char **)((int)ppcVar15 + -8));\n        }\n        *(undefined4 *)((int)ppcVar15 + -0xc) = 0x14;\n        *(Task **)((int)ppcVar15 + -0x10) = pTVar2;\n        *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191010;\n        operator_delete(*(void **)((int)ppcVar15 + -0x10),*(uint *)((int)ppcVar15 + -0xc));\n      }\n      pTVar10->_vptr_Task = (_func_int_varargs **)(local_90 + -0x1717);\n      pcVar13 = (pTVar10->name_)._M_dataplus._M_p;\n      if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)pcVar13 != &(pTVar10->name_).field_2) {\n        *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;\n        *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191034;\n        operator_delete(*(void **)((int)ppcVar15 + -0x10));\n      }\n      *(undefined4 *)((int)ppcVar15 + -0xc) = 0x30;\n      *(Task **)((int)ppcVar15 + -0x10) = pTVar10;\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191048;\n      operator_delete(*(void **)((int)ppcVar15 + -0x10),*(uint *)((int)ppcVar15 + -0xc));\n      pTVar10 = local_98;\n    }" { (expression_statement "pTVar10->_vptr_Task = (_func_int_varargs **)(local_90 + -0x307b);" (assignment_expression "pTVar10->_vptr_Task = (_func_int_varargs **)(local_90 + -0x307b)" (field_expression "pTVar10->_vptr_Task" identifier -> field_identifier) = (cast_expression "(_func_int_varargs **)(local_90 + -0x307b)" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_90 + -0x307b)" ( (binary_expression "local_90 + -0x307b" identifier + number_literal) )))) ;) (expression_statement "pp_Var6 = pTVar10[1]._vptr_Task;" (assignment_expression "pp_Var6 = pTVar10[1]._vptr_Task" identifier = (field_expression "pTVar10[1]._vptr_Task" (subscript_expression "pTVar10[1]" identifier [ number_literal ]) . field_identifier)) ;) (if_statement "if (pp_Var6 != (_func_int_varargs **)0x0) {\n        p_Var7 = *pp_Var6;\n        *(_func_int_varargs ***)((int)ppcVar15 + -0x10) = pp_Var6;\n        pcVar8 = *(code **)(p_Var7 + 4);\n        *(undefined4 *)((int)ppcVar15 + -0x14) = 0x190fc9;\n        (*pcVar8)();\n      }" if (parenthesized_expression "(pp_Var6 != (_func_int_varargs **)0x0)" ( (binary_expression "pp_Var6 != (_func_int_varargs **)0x0" 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        p_Var7 = *pp_Var6;\n        *(_func_int_varargs ***)((int)ppcVar15 + -0x10) = pp_Var6;\n        pcVar8 = *(code **)(p_Var7 + 4);\n        *(undefined4 *)((int)ppcVar15 + -0x14) = 0x190fc9;\n        (*pcVar8)();\n      }" { (expression_statement "p_Var7 = *pp_Var6;" (assignment_expression "p_Var7 = *pp_Var6" identifier = (pointer_expression "*pp_Var6" * identifier)) ;) (expression_statement "*(_func_int_varargs ***)((int)ppcVar15 + -0x10) = pp_Var6;" (assignment_expression "*(_func_int_varargs ***)((int)ppcVar15 + -0x10) = pp_Var6" (pointer_expression "*(_func_int_varargs ***)((int)ppcVar15 + -0x10)" * (cast_expression "(_func_int_varargs ***)((int)ppcVar15 + -0x10)" ( (type_descriptor "_func_int_varargs ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar15 + -0x10)" ( (binary_expression "(int)ppcVar15 + -0x10" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar8 = *(code **)(p_Var7 + 4);" (assignment_expression "pcVar8 = *(code **)(p_Var7 + 4)" identifier = (pointer_expression "*(code **)(p_Var7 + 4)" * (cast_expression "(code **)(p_Var7 + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(p_Var7 + 4)" ( (binary_expression "p_Var7 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x190fc9;" (assignment_expression "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x190fc9" (pointer_expression "*(undefined4 *)((int)ppcVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0x14)" ( (binary_expression "(int)ppcVar15 + -0x14" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar8)();" (call_expression "(*pcVar8)()" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "()" ( ))) ;) })) (expression_statement "pTVar2 = pTVar10[1].list_next_;" (assignment_expression "pTVar2 = pTVar10[1].list_next_" identifier = (field_expression "pTVar10[1].list_next_" (subscript_expression "pTVar10[1]" identifier [ number_literal ]) . field_identifier)) ;) (if_statement "if (pTVar2 != (Task *)0x0) {\n        if (pTVar2->list_next_ != (Task *)0x0) {\n          *(undefined ***)((int)ppcVar15 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)ppcVar15 + -0xc) = 100;\n          *(int *)((int)ppcVar15 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1915d4;\n          do_gold_unreachable(*(char **)((int)ppcVar15 + -0x10),*(int *)((int)ppcVar15 + -0xc),\n                              *(char **)((int)ppcVar15 + -8));\n        }\n        if ((pTVar2->name_)._M_dataplus._M_p != (pointer)0x0) {\n          *(undefined ***)((int)ppcVar15 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)ppcVar15 + -0xc) = 0x65;\n          *(int *)((int)ppcVar15 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined1 **)((int)ppcVar15 + -0x14) = &LAB_001915f2;\n          do_gold_unreachable(*(char **)((int)ppcVar15 + -0x10),*(int *)((int)ppcVar15 + -0xc),\n                              *(char **)((int)ppcVar15 + -8));\n        }\n        if (((pTVar2->name_)._M_string_length != 0) ||\n           ((pTVar2->name_).field_2._M_allocated_capacity != 0)) {\n          *(undefined ***)((int)ppcVar15 + -8) = local_90 + -0x3d215;\n          *(undefined4 *)((int)ppcVar15 + -0xc) = 0x2c;\n          *(int *)((int)ppcVar15 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1915b6;\n          do_gold_unreachable(*(char **)((int)ppcVar15 + -0x10),*(int *)((int)ppcVar15 + -0xc),\n                              *(char **)((int)ppcVar15 + -8));\n        }\n        *(undefined4 *)((int)ppcVar15 + -0xc) = 0x14;\n        *(Task **)((int)ppcVar15 + -0x10) = pTVar2;\n        *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191010;\n        operator_delete(*(void **)((int)ppcVar15 + -0x10),*(uint *)((int)ppcVar15 + -0xc));\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 (pTVar2->list_next_ != (Task *)0x0) {\n          *(undefined ***)((int)ppcVar15 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)ppcVar15 + -0xc) = 100;\n          *(int *)((int)ppcVar15 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1915d4;\n          do_gold_unreachable(*(char **)((int)ppcVar15 + -0x10),*(int *)((int)ppcVar15 + -0xc),\n                              *(char **)((int)ppcVar15 + -8));\n        }\n        if ((pTVar2->name_)._M_dataplus._M_p != (pointer)0x0) {\n          *(undefined ***)((int)ppcVar15 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)ppcVar15 + -0xc) = 0x65;\n          *(int *)((int)ppcVar15 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined1 **)((int)ppcVar15 + -0x14) = &LAB_001915f2;\n          do_gold_unreachable(*(char **)((int)ppcVar15 + -0x10),*(int *)((int)ppcVar15 + -0xc),\n                              *(char **)((int)ppcVar15 + -8));\n        }\n        if (((pTVar2->name_)._M_string_length != 0) ||\n           ((pTVar2->name_).field_2._M_allocated_capacity != 0)) {\n          *(undefined ***)((int)ppcVar15 + -8) = local_90 + -0x3d215;\n          *(undefined4 *)((int)ppcVar15 + -0xc) = 0x2c;\n          *(int *)((int)ppcVar15 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1915b6;\n          do_gold_unreachable(*(char **)((int)ppcVar15 + -0x10),*(int *)((int)ppcVar15 + -0xc),\n                              *(char **)((int)ppcVar15 + -8));\n        }\n        *(undefined4 *)((int)ppcVar15 + -0xc) = 0x14;\n        *(Task **)((int)ppcVar15 + -0x10) = pTVar2;\n        *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191010;\n        operator_delete(*(void **)((int)ppcVar15 + -0x10),*(uint *)((int)ppcVar15 + -0xc));\n      }" { (if_statement "if (pTVar2->list_next_ != (Task *)0x0) {\n          *(undefined ***)((int)ppcVar15 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)ppcVar15 + -0xc) = 100;\n          *(int *)((int)ppcVar15 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1915d4;\n          do_gold_unreachable(*(char **)((int)ppcVar15 + -0x10),*(int *)((int)ppcVar15 + -0xc),\n                              *(char **)((int)ppcVar15 + -8));\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          *(undefined ***)((int)ppcVar15 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)ppcVar15 + -0xc) = 100;\n          *(int *)((int)ppcVar15 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1915d4;\n          do_gold_unreachable(*(char **)((int)ppcVar15 + -0x10),*(int *)((int)ppcVar15 + -0xc),\n                              *(char **)((int)ppcVar15 + -8));\n        }" { (expression_statement "*(undefined ***)((int)ppcVar15 + -8) = local_90 + -0x3d22e;" (assignment_expression "*(undefined ***)((int)ppcVar15 + -8) = local_90 + -0x3d22e" (pointer_expression "*(undefined ***)((int)ppcVar15 + -8)" * (cast_expression "(undefined ***)((int)ppcVar15 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar15 + -8)" ( (binary_expression "(int)ppcVar15 + -8" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_90 + -0x3d22e" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)ppcVar15 + -0xc) = 100;" (assignment_expression "*(undefined4 *)((int)ppcVar15 + -0xc) = 100" (pointer_expression "*(undefined4 *)((int)ppcVar15 + -0xc)" * (cast_expression "(undefined4 *)((int)ppcVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0xc)" ( (binary_expression "(int)ppcVar15 + -0xc" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)ppcVar15 + -0x10) = (int)local_90 + -0x10ea43;" (assignment_expression "*(int *)((int)ppcVar15 + -0x10) = (int)local_90 + -0x10ea43" (pointer_expression "*(int *)((int)ppcVar15 + -0x10)" * (cast_expression "(int *)((int)ppcVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0x10)" ( (binary_expression "(int)ppcVar15 + -0x10" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_90 + -0x10ea43" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x1915d4;" (assignment_expression "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x1915d4" (pointer_expression "*(undefined4 *)((int)ppcVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0x14)" ( (binary_expression "(int)ppcVar15 + -0x14" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "do_gold_unreachable(*(char **)((int)ppcVar15 + -0x10),*(int *)((int)ppcVar15 + -0xc),\n                              *(char **)((int)ppcVar15 + -8));" (call_expression "do_gold_unreachable(*(char **)((int)ppcVar15 + -0x10),*(int *)((int)ppcVar15 + -0xc),\n                              *(char **)((int)ppcVar15 + -8))" identifier (argument_list "(*(char **)((int)ppcVar15 + -0x10),*(int *)((int)ppcVar15 + -0xc),\n                              *(char **)((int)ppcVar15 + -8))" ( (pointer_expression "*(char **)((int)ppcVar15 + -0x10)" * (cast_expression "(char **)((int)ppcVar15 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -0x10)" ( (binary_expression "(int)ppcVar15 + -0x10" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)ppcVar15 + -0xc)" * (cast_expression "(int *)((int)ppcVar15 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0xc)" ( (binary_expression "(int)ppcVar15 + -0xc" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)ppcVar15 + -8)" * (cast_expression "(char **)((int)ppcVar15 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -8)" ( (binary_expression "(int)ppcVar15 + -8" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (if_statement "if ((pTVar2->name_)._M_dataplus._M_p != (pointer)0x0) {\n          *(undefined ***)((int)ppcVar15 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)ppcVar15 + -0xc) = 0x65;\n          *(int *)((int)ppcVar15 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined1 **)((int)ppcVar15 + -0x14) = &LAB_001915f2;\n          do_gold_unreachable(*(char **)((int)ppcVar15 + -0x10),*(int *)((int)ppcVar15 + -0xc),\n                              *(char **)((int)ppcVar15 + -8));\n        }" if (parenthesized_expression "((pTVar2->name_)._M_dataplus._M_p != (pointer)0x0)" ( (binary_expression "(pTVar2->name_)._M_dataplus._M_p != (pointer)0x0" (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)0x0" ( (type_descriptor "pointer" type_identifier) ) number_literal)) )) (compound_statement "{\n          *(undefined ***)((int)ppcVar15 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)ppcVar15 + -0xc) = 0x65;\n          *(int *)((int)ppcVar15 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined1 **)((int)ppcVar15 + -0x14) = &LAB_001915f2;\n          do_gold_unreachable(*(char **)((int)ppcVar15 + -0x10),*(int *)((int)ppcVar15 + -0xc),\n                              *(char **)((int)ppcVar15 + -8));\n        }" { (expression_statement "*(undefined ***)((int)ppcVar15 + -8) = local_90 + -0x3d22e;" (assignment_expression "*(undefined ***)((int)ppcVar15 + -8) = local_90 + -0x3d22e" (pointer_expression "*(undefined ***)((int)ppcVar15 + -8)" * (cast_expression "(undefined ***)((int)ppcVar15 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar15 + -8)" ( (binary_expression "(int)ppcVar15 + -8" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_90 + -0x3d22e" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)ppcVar15 + -0xc) = 0x65;" (assignment_expression "*(undefined4 *)((int)ppcVar15 + -0xc) = 0x65" (pointer_expression "*(undefined4 *)((int)ppcVar15 + -0xc)" * (cast_expression "(undefined4 *)((int)ppcVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0xc)" ( (binary_expression "(int)ppcVar15 + -0xc" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)ppcVar15 + -0x10) = (int)local_90 + -0x10ea43;" (assignment_expression "*(int *)((int)ppcVar15 + -0x10) = (int)local_90 + -0x10ea43" (pointer_expression "*(int *)((int)ppcVar15 + -0x10)" * (cast_expression "(int *)((int)ppcVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0x10)" ( (binary_expression "(int)ppcVar15 + -0x10" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_90 + -0x10ea43" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined1 **)((int)ppcVar15 + -0x14) = &LAB_001915f2;" (assignment_expression "*(undefined1 **)((int)ppcVar15 + -0x14) = &LAB_001915f2" (pointer_expression "*(undefined1 **)((int)ppcVar15 + -0x14)" * (cast_expression "(undefined1 **)((int)ppcVar15 + -0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -0x14)" ( (binary_expression "(int)ppcVar15 + -0x14" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&LAB_001915f2" & identifier)) ;) (expression_statement "do_gold_unreachable(*(char **)((int)ppcVar15 + -0x10),*(int *)((int)ppcVar15 + -0xc),\n                              *(char **)((int)ppcVar15 + -8));" (call_expression "do_gold_unreachable(*(char **)((int)ppcVar15 + -0x10),*(int *)((int)ppcVar15 + -0xc),\n                              *(char **)((int)ppcVar15 + -8))" identifier (argument_list "(*(char **)((int)ppcVar15 + -0x10),*(int *)((int)ppcVar15 + -0xc),\n                              *(char **)((int)ppcVar15 + -8))" ( (pointer_expression "*(char **)((int)ppcVar15 + -0x10)" * (cast_expression "(char **)((int)ppcVar15 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -0x10)" ( (binary_expression "(int)ppcVar15 + -0x10" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)ppcVar15 + -0xc)" * (cast_expression "(int *)((int)ppcVar15 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0xc)" ( (binary_expression "(int)ppcVar15 + -0xc" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)ppcVar15 + -8)" * (cast_expression "(char **)((int)ppcVar15 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -8)" ( (binary_expression "(int)ppcVar15 + -8" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (if_statement "if (((pTVar2->name_)._M_string_length != 0) ||\n           ((pTVar2->name_).field_2._M_allocated_capacity != 0)) {\n          *(undefined ***)((int)ppcVar15 + -8) = local_90 + -0x3d215;\n          *(undefined4 *)((int)ppcVar15 + -0xc) = 0x2c;\n          *(int *)((int)ppcVar15 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1915b6;\n          do_gold_unreachable(*(char **)((int)ppcVar15 + -0x10),*(int *)((int)ppcVar15 + -0xc),\n                              *(char **)((int)ppcVar15 + -8));\n        }" if (parenthesized_expression "(((pTVar2->name_)._M_string_length != 0) ||\n           ((pTVar2->name_).field_2._M_allocated_capacity != 0))" ( (binary_expression "((pTVar2->name_)._M_string_length != 0) ||\n           ((pTVar2->name_).field_2._M_allocated_capacity != 0)" (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) )) || (parenthesized_expression "((pTVar2->name_).field_2._M_allocated_capacity != 0)" ( (binary_expression "(pTVar2->name_).field_2._M_allocated_capacity != 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) != number_literal) ))) )) (compound_statement "{\n          *(undefined ***)((int)ppcVar15 + -8) = local_90 + -0x3d215;\n          *(undefined4 *)((int)ppcVar15 + -0xc) = 0x2c;\n          *(int *)((int)ppcVar15 + -0x10) = (int)local_90 + -0x10ea43;\n                    /* WARNING: Subroutine does not return */\n          *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1915b6;\n          do_gold_unreachable(*(char **)((int)ppcVar15 + -0x10),*(int *)((int)ppcVar15 + -0xc),\n                              *(char **)((int)ppcVar15 + -8));\n        }" { (expression_statement "*(undefined ***)((int)ppcVar15 + -8) = local_90 + -0x3d215;" (assignment_expression "*(undefined ***)((int)ppcVar15 + -8) = local_90 + -0x3d215" (pointer_expression "*(undefined ***)((int)ppcVar15 + -8)" * (cast_expression "(undefined ***)((int)ppcVar15 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)ppcVar15 + -8)" ( (binary_expression "(int)ppcVar15 + -8" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_90 + -0x3d215" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)ppcVar15 + -0xc) = 0x2c;" (assignment_expression "*(undefined4 *)((int)ppcVar15 + -0xc) = 0x2c" (pointer_expression "*(undefined4 *)((int)ppcVar15 + -0xc)" * (cast_expression "(undefined4 *)((int)ppcVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0xc)" ( (binary_expression "(int)ppcVar15 + -0xc" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)ppcVar15 + -0x10) = (int)local_90 + -0x10ea43;" (assignment_expression "*(int *)((int)ppcVar15 + -0x10) = (int)local_90 + -0x10ea43" (pointer_expression "*(int *)((int)ppcVar15 + -0x10)" * (cast_expression "(int *)((int)ppcVar15 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0x10)" ( (binary_expression "(int)ppcVar15 + -0x10" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_90 + -0x10ea43" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) comment (expression_statement "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x1915b6;" (assignment_expression "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x1915b6" (pointer_expression "*(undefined4 *)((int)ppcVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0x14)" ( (binary_expression "(int)ppcVar15 + -0x14" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "do_gold_unreachable(*(char **)((int)ppcVar15 + -0x10),*(int *)((int)ppcVar15 + -0xc),\n                              *(char **)((int)ppcVar15 + -8));" (call_expression "do_gold_unreachable(*(char **)((int)ppcVar15 + -0x10),*(int *)((int)ppcVar15 + -0xc),\n                              *(char **)((int)ppcVar15 + -8))" identifier (argument_list "(*(char **)((int)ppcVar15 + -0x10),*(int *)((int)ppcVar15 + -0xc),\n                              *(char **)((int)ppcVar15 + -8))" ( (pointer_expression "*(char **)((int)ppcVar15 + -0x10)" * (cast_expression "(char **)((int)ppcVar15 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -0x10)" ( (binary_expression "(int)ppcVar15 + -0x10" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(int *)((int)ppcVar15 + -0xc)" * (cast_expression "(int *)((int)ppcVar15 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0xc)" ( (binary_expression "(int)ppcVar15 + -0xc" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(char **)((int)ppcVar15 + -8)" * (cast_expression "(char **)((int)ppcVar15 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -8)" ( (binary_expression "(int)ppcVar15 + -8" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (expression_statement "*(undefined4 *)((int)ppcVar15 + -0xc) = 0x14;" (assignment_expression "*(undefined4 *)((int)ppcVar15 + -0xc) = 0x14" (pointer_expression "*(undefined4 *)((int)ppcVar15 + -0xc)" * (cast_expression "(undefined4 *)((int)ppcVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0xc)" ( (binary_expression "(int)ppcVar15 + -0xc" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(Task **)((int)ppcVar15 + -0x10) = pTVar2;" (assignment_expression "*(Task **)((int)ppcVar15 + -0x10) = pTVar2" (pointer_expression "*(Task **)((int)ppcVar15 + -0x10)" * (cast_expression "(Task **)((int)ppcVar15 + -0x10)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -0x10)" ( (binary_expression "(int)ppcVar15 + -0x10" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x191010;" (assignment_expression "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x191010" (pointer_expression "*(undefined4 *)((int)ppcVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0x14)" ( (binary_expression "(int)ppcVar15 + -0x14" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "operator_delete(*(void **)((int)ppcVar15 + -0x10),*(uint *)((int)ppcVar15 + -0xc));" (call_expression "operator_delete(*(void **)((int)ppcVar15 + -0x10),*(uint *)((int)ppcVar15 + -0xc))" identifier (argument_list "(*(void **)((int)ppcVar15 + -0x10),*(uint *)((int)ppcVar15 + -0xc))" ( (pointer_expression "*(void **)((int)ppcVar15 + -0x10)" * (cast_expression "(void **)((int)ppcVar15 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -0x10)" ( (binary_expression "(int)ppcVar15 + -0x10" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(uint *)((int)ppcVar15 + -0xc)" * (cast_expression "(uint *)((int)ppcVar15 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0xc)" ( (binary_expression "(int)ppcVar15 + -0xc" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (expression_statement "pTVar10->_vptr_Task = (_func_int_varargs **)(local_90 + -0x1717);" (assignment_expression "pTVar10->_vptr_Task = (_func_int_varargs **)(local_90 + -0x1717)" (field_expression "pTVar10->_vptr_Task" identifier -> field_identifier) = (cast_expression "(_func_int_varargs **)(local_90 + -0x1717)" ( (type_descriptor "_func_int_varargs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_90 + -0x1717)" ( (binary_expression "local_90 + -0x1717" identifier + number_literal) )))) ;) (expression_statement "pcVar13 = (pTVar10->name_)._M_dataplus._M_p;" (assignment_expression "pcVar13 = (pTVar10->name_)._M_dataplus._M_p" identifier = (field_expression "(pTVar10->name_)._M_dataplus._M_p" (field_expression "(pTVar10->name_)._M_dataplus" (parenthesized_expression "(pTVar10->name_)" ( (field_expression "pTVar10->name_" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if ((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)pcVar13 != &(pTVar10->name_).field_2) {\n        *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;\n        *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191034;\n        operator_delete(*(void **)((int)ppcVar15 + -0x10));\n      }" if (parenthesized_expression "((anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)pcVar13 != &(pTVar10->name_).field_2)" ( (parenthesized_expression "(anon_union_16_2_edb7204a_for_basic_string<char,_std::char_traits<char>,_std::allocator<char>_>_9\n           *)pcVar13 != &(pTVar10->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           *)pcVar13 != &(pTVar10->name_).field_2" (binary_expression "allocator<char>_>_9\n           *)pcVar13" (binary_expression "allocator<char>_" (binary_expression "allocator<char" identifier < identifier) > identifier) > (binary_expression "_9\n           *)pcVar13" identifier * (ERROR ")" )) identifier)) != (pointer_expression "&(pTVar10->name_).field_2" & (field_expression "(pTVar10->name_).field_2" (parenthesized_expression "(pTVar10->name_)" ( (field_expression "pTVar10->name_" identifier -> field_identifier) )) . field_identifier))) )) )) (compound_statement "{\n        *(pointer *)((int)ppcVar15 + -0x10) = pcVar13;\n        *(undefined4 *)((int)ppcVar15 + -0x14) = 0x191034;\n        operator_delete(*(void **)((int)ppcVar15 + -0x10));\n      }" { (expression_statement "*(pointer *)((int)ppcVar15 + -0x10) = pcVar13;" (assignment_expression "*(pointer *)((int)ppcVar15 + -0x10) = pcVar13" (pointer_expression "*(pointer *)((int)ppcVar15 + -0x10)" * (cast_expression "(pointer *)((int)ppcVar15 + -0x10)" ( (type_descriptor "pointer *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0x10)" ( (binary_expression "(int)ppcVar15 + -0x10" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x191034;" (assignment_expression "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x191034" (pointer_expression "*(undefined4 *)((int)ppcVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0x14)" ( (binary_expression "(int)ppcVar15 + -0x14" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "operator_delete(*(void **)((int)ppcVar15 + -0x10));" (call_expression "operator_delete(*(void **)((int)ppcVar15 + -0x10))" identifier (argument_list "(*(void **)((int)ppcVar15 + -0x10))" ( (pointer_expression "*(void **)((int)ppcVar15 + -0x10)" * (cast_expression "(void **)((int)ppcVar15 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -0x10)" ( (binary_expression "(int)ppcVar15 + -0x10" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) })) (expression_statement "*(undefined4 *)((int)ppcVar15 + -0xc) = 0x30;" (assignment_expression "*(undefined4 *)((int)ppcVar15 + -0xc) = 0x30" (pointer_expression "*(undefined4 *)((int)ppcVar15 + -0xc)" * (cast_expression "(undefined4 *)((int)ppcVar15 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0xc)" ( (binary_expression "(int)ppcVar15 + -0xc" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(Task **)((int)ppcVar15 + -0x10) = pTVar10;" (assignment_expression "*(Task **)((int)ppcVar15 + -0x10) = pTVar10" (pointer_expression "*(Task **)((int)ppcVar15 + -0x10)" * (cast_expression "(Task **)((int)ppcVar15 + -0x10)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -0x10)" ( (binary_expression "(int)ppcVar15 + -0x10" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x191048;" (assignment_expression "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x191048" (pointer_expression "*(undefined4 *)((int)ppcVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0x14)" ( (binary_expression "(int)ppcVar15 + -0x14" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "operator_delete(*(void **)((int)ppcVar15 + -0x10),*(uint *)((int)ppcVar15 + -0xc));" (call_expression "operator_delete(*(void **)((int)ppcVar15 + -0x10),*(uint *)((int)ppcVar15 + -0xc))" identifier (argument_list "(*(void **)((int)ppcVar15 + -0x10),*(uint *)((int)ppcVar15 + -0xc))" ( (pointer_expression "*(void **)((int)ppcVar15 + -0x10)" * (cast_expression "(void **)((int)ppcVar15 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -0x10)" ( (binary_expression "(int)ppcVar15 + -0x10" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(uint *)((int)ppcVar15 + -0xc)" * (cast_expression "(uint *)((int)ppcVar15 + -0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0xc)" ( (binary_expression "(int)ppcVar15 + -0xc" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "pTVar10 = local_98;" (assignment_expression "pTVar10 = local_98" identifier = identifier) ;) }) (else_clause "else {\n      *(Task **)((int)ppcVar15 + -0x10) = pTVar10;\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1913d6;\n      (*(code *)ppuVar4)();\n      pTVar10 = local_98;\n    }" else (compound_statement "{\n      *(Task **)((int)ppcVar15 + -0x10) = pTVar10;\n      *(undefined4 *)((int)ppcVar15 + -0x14) = 0x1913d6;\n      (*(code *)ppuVar4)();\n      pTVar10 = local_98;\n    }" { (expression_statement "*(Task **)((int)ppcVar15 + -0x10) = pTVar10;" (assignment_expression "*(Task **)((int)ppcVar15 + -0x10) = pTVar10" (pointer_expression "*(Task **)((int)ppcVar15 + -0x10)" * (cast_expression "(Task **)((int)ppcVar15 + -0x10)" ( (type_descriptor "Task **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar15 + -0x10)" ( (binary_expression "(int)ppcVar15 + -0x10" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x1913d6;" (assignment_expression "*(undefined4 *)((int)ppcVar15 + -0x14) = 0x1913d6" (pointer_expression "*(undefined4 *)((int)ppcVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)ppcVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcVar15 + -0x14)" ( (binary_expression "(int)ppcVar15 + -0x14" (cast_expression "(int)ppcVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*(code *)ppuVar4)();" (call_expression "(*(code *)ppuVar4)()" (parenthesized_expression "(*(code *)ppuVar4)" ( (pointer_expression "*(code *)ppuVar4" * (cast_expression "(code *)ppuVar4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "pTVar10 = local_98;" (assignment_expression "pTVar10 = local_98" identifier = identifier) ;) }))) (expression_statement "local_98 = pTVar10;" (assignment_expression "local_98 = pTVar10" identifier = identifier) ;) (if_statement "if (pTVar10 == (Task *)0x0) {\n      return true;\n    }" if (parenthesized_expression "(pTVar10 == (Task *)0x0)" ( (binary_expression "pTVar10 == (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 ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "undefined4 FUN_00190e80(undefined4 *param_1,undefined4 param_2)\n\n{\n  undefined4 *puVar1;\n  undefined **ppuVar2;\n  code *pcVar3;\n  int *piVar4;\n  int iVar5;\n  size_t sVar6;\n  int *piVar7;\n  int iVar8;\n  undefined1 *puVar9;\n  int *piVar10;\n  undefined1 *puVar11;\n  int local_cc;\n  int *local_c8;\n  int local_c4;\n  int local_c0;\n  int local_bc;\n  undefined4 local_b8;\n  int local_b4;\n  int local_b0;\n  undefined **local_ac;\n  int *local_a8;\n  undefined **local_a4;\n  undefined4 *local_a0;\n  int **local_9c;\n  int *local_98;\n  undefined **local_94;\n  undefined **local_90;\n  int local_84;\n  int local_80;\n  int local_7c;\n  undefined4 local_78 [5];\n  int *local_64;\n  int local_60;\n  int local_5c [4];\n  int *local_4c;\n  int local_48;\n  int local_44 [13];\n  \n  local_90 = &__DT_PLTGOT;\n  local_78[0] = 0;\n  (**(code **)(*(int *)*param_1 + 8))((int *)*param_1);\n                    \n  piVar4 = (int *)FUN_001908c0(param_1,param_2);\n  if (piVar4 == (int *)0x0) {\n    (**(code **)(*(int *)*param_1 + 0xc))((int *)*param_1);\n    return 0;\n  }\n  local_a0 = local_78;\n  local_ac = local_90 + -0xc8b40;\n  if (*(undefined ***)(*piVar4 + 0xc) != local_ac) {\n                    \n    (*(code *)*(undefined ***)(*piVar4 + 0xc))(piVar4,local_a0);\n  }\n  piVar10 = &local_cc;\n  param_1[5] = param_1[5] + 1;\n  (**(code **)(*(int *)*param_1 + 0xc))((int *)*param_1);\n  local_94 = local_90 + 0xde;\n  local_a4 = local_90 + -0xc8b3c;\n  local_a8 = local_44;\n  local_9c = &local_4c;\n  do {\n    puVar1 = (undefined4 *)*local_94;\n    puVar9 = (undefined1 *)piVar10;\n    if ((puVar1[2] != 0) && ((*(byte *)(puVar1 + 5) & 1) != 0)) {\n      local_98 = (int *)*puVar1;\n      if (piVar4[3] == 0) {\n        ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n        if (ppuVar2 == local_90 + -0xc8a2c) {\n          iVar8 = piVar4[0xb];\n          local_4c = local_a8;\n          iVar5 = -1;\n          if (iVar8 != 0) {\n            *(int *)((int)piVar10 + -0x10) = iVar8;\n            *(undefined4 *)((int)piVar10 + -0x14) = 0x1910c6;\n            local_b0 = iVar8;\n            sVar6 = strlen(*(char **)((int)piVar10 + -0x10));\n            iVar5 = sVar6 + local_b0;\n            iVar8 = local_b0;\n          }\n          *(undefined4 *)((int)piVar10 + -4) = 0;\n          *(int *)((int)piVar10 + -8) = iVar5;\n          *(int *)((int)piVar10 + -0xc) = iVar8;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1910e0;\n          FUN_00050e40();\n        }\n        else {\n          *(int **)((int)piVar10 + -0xc) = piVar4;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1914bc;\n          (*(code *)ppuVar2)();\n          piVar10 = (int *)((int)piVar10 + -4);\n        }\n        piVar7 = (int *)piVar4[2];\n        if (local_4c == local_a8) {\n          if (local_48 != 0) {\n            if (local_48 == 1) {\n              *(undefined1 *)piVar7 = (undefined1)local_44[0];\n              piVar7 = (int *)piVar4[2];\n            }\n            else {\n              *(int *)((int)piVar10 + -8) = local_48;\n              *(int **)((int)piVar10 + -0xc) = local_a8;\n              *(int **)((int)piVar10 + -0x10) = piVar7;\n              *(undefined4 *)((int)piVar10 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8));\n              piVar7 = (int *)piVar4[2];\n            }\n          }\n          piVar4[3] = local_48;\n          *(undefined1 *)((int)piVar7 + local_48) = 0;\n          iVar8 = local_44[0];\n        }\n        else {\n          if (piVar7 == piVar4 + 4) {\n            piVar4[2] = (int)local_4c;\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n          }\n          else {\n            piVar4[2] = (int)local_4c;\n            iVar8 = piVar4[4];\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n            local_4c = piVar7;\n            if (piVar7 != (int *)0x0) goto LAB_00191120;\n          }\n          local_4c = local_a8;\n          iVar8 = local_44[0];\n        }\nLAB_00191120:\n        local_44[0] = iVar8;\n        local_48 = 0;\n        *(undefined1 *)local_4c = 0;\n        if (local_4c != local_a8) {\n          *(int **)((int)piVar10 + -0x10) = local_4c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x191144;\n          FUN_001e6db0();\n        }\n      }\n      *(int *)((int)piVar10 + -4) = piVar4[2];\n      *(undefined4 *)((int)piVar10 + -8) = param_2;\n      *(int *)((int)piVar10 + -0xc) = (int)local_90 + -0xf4943;\n      *(int **)((int)piVar10 + -0x10) = local_98;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191165;\n      FUN_000653f0();\n      puVar9 = (undefined1 *)piVar10;\n    }\n    *(int ***)(puVar9 + -0x10) = local_9c;\n    *(undefined4 *)(puVar9 + -0x14) = 0x19117c;\n    FUN_0018fff0();\n    if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {\n      *(int ***)(puVar9 + -0x10) = local_9c;\n      *(undefined4 *)(puVar9 + -0x14) = 0x1911a8;\n      thunk_FUN_00190010();\n    }\n    ppuVar2 = *(undefined ***)(*piVar4 + 0x10);\n    if (ppuVar2 == local_a4) {\n      piVar10 = (int *)piVar4[9];\n      iVar8 = *piVar10;\n      *(int **)(puVar9 + -8) = piVar4;\n      *(undefined4 **)(puVar9 + -0xc) = param_1;\n      *(int **)(puVar9 + -0x10) = piVar10;\n      pcVar3 = *(code **)(iVar8 + 8);\n      *(undefined4 *)(puVar9 + -0x14) = 0x1911ca;\n      (*pcVar3)();\n    }\n    else {\n      *(undefined4 **)(puVar9 + -0xc) = param_1;\n      *(int **)(puVar9 + -0x10) = piVar4;\n      *(undefined4 *)(puVar9 + -0x14) = 0x1913ff;\n      (*(code *)ppuVar2)();\n    }\n    piVar10 = (int *)puVar9;\n    if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {\n      *(int ***)(puVar9 + -0xc) = local_9c;\n      *(int **)(puVar9 + -0x10) = &local_84;\n      *(undefined4 *)(puVar9 + -0x14) = 0x191202;\n      FUN_001900d0();\n      puVar11 = puVar9 + -4;\n      puVar1 = (undefined4 *)*local_94;\n      piVar10 = (int *)(puVar9 + -4);\n      if ((puVar1[2] != 0) && (piVar10 = (int *)(puVar9 + -4), (*(byte *)(puVar1 + 5) & 1) != 0)) {\n        local_b8 = *puVar1;\n        local_bc = local_7c / 1000;\n        local_98 = (int *)((local_7c % 1000) * 1000);\n        local_c0 = local_80 / 1000;\n        local_b0 = (local_80 % 1000) * 1000;\n        local_c4 = local_84 / 1000;\n        local_b4 = (local_84 % 1000) * 1000;\n        if (piVar4[3] == 0) {\n          ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n          if (ppuVar2 == local_90 + -0xc8a2c) {\n            iVar8 = piVar4[0xb];\n            local_c8 = local_5c;\n            iVar5 = -1;\n            local_64 = local_c8;\n            if (iVar8 != 0) {\n              *(int *)(puVar9 + -0x14) = iVar8;\n              *(undefined4 *)(puVar9 + -0x18) = 0x1912ff;\n              local_cc = iVar8;\n              sVar6 = strlen(*(char **)(puVar9 + -0x14));\n              iVar5 = sVar6 + local_cc;\n              iVar8 = local_cc;\n            }\n            puVar11 = puVar9 + -4;\n            *(undefined4 *)(puVar9 + -8) = 0;\n            *(int *)(puVar9 + -0xc) = iVar5;\n            *(int *)(puVar9 + -0x10) = iVar8;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191317;\n            FUN_00050e40();\n          }\n          else {\n            *(int **)(puVar9 + -0x10) = piVar4;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191579;\n            (*(code *)ppuVar2)();\n            local_c8 = local_5c;\n            puVar11 = puVar9 + -8;\n          }\n          piVar10 = (int *)piVar4[2];\n          if (local_64 == local_c8) {\n            if (local_60 != 0) {\n              if (local_60 == 1) {\n                *(undefined1 *)piVar10 = (undefined1)local_5c[0];\n                piVar10 = (int *)piVar4[2];\n              }\n              else {\n                *(int *)(puVar11 + -8) = local_60;\n                *(int **)(puVar11 + -0xc) = local_c8;\n                *(int **)(puVar11 + -0x10) = piVar10;\n                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;\n                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));\n                piVar10 = (int *)piVar4[2];\n              }\n            }\n            piVar4[3] = local_60;\n            *(undefined1 *)((int)piVar10 + local_60) = 0;\n            piVar10 = local_64;\n            iVar8 = local_5c[0];\n          }\n          else {\n            if (piVar10 == piVar4 + 4) {\n              piVar4[2] = (int)local_64;\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n            }\n            else {\n              piVar4[2] = (int)local_64;\n              iVar8 = piVar4[4];\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n              local_64 = piVar10;\n              if (piVar10 != (int *)0x0) goto LAB_00191357;\n            }\n            local_64 = local_c8;\n            local_c8 = local_5c;\n            piVar10 = local_c8;\n            iVar8 = local_5c[0];\n          }\nLAB_00191357:\n          local_5c[0] = iVar8;\n          local_60 = 0;\n          *(undefined1 *)piVar10 = 0;\n          if (local_64 != local_c8) {\n            *(int **)(puVar11 + -0x10) = local_64;\n            *(undefined4 *)(puVar11 + -0x14) = 0x19137b;\n            FUN_001e6db0();\n          }\n        }\n        *(int **)(puVar11 + -0xc) = local_98;\n        *(int *)(puVar11 + -0x10) = local_bc;\n        *(int *)(puVar11 + -0x14) = local_b0;\n        *(int *)(puVar11 + -0x18) = local_c0;\n        *(int *)(puVar11 + -0x1c) = local_b4;\n        *(int *)(puVar11 + -0x20) = local_c4;\n        *(int *)(puVar11 + -0x24) = piVar4[2];\n        *(undefined4 *)(puVar11 + -0x28) = param_2;\n        *(undefined ***)(puVar11 + -0x2c) = local_90 + -0x3d24b;\n        *(undefined4 *)(puVar11 + -0x30) = local_b8;\n        *(undefined4 *)(puVar11 + -0x34) = 0x1913c3;\n        FUN_000653f0();\n        piVar10 = (int *)puVar11;\n      }\n    }\n    iVar8 = *(int *)*param_1;\n    *(int **)((int)piVar10 + -0x10) = (int *)*param_1;\n    pcVar3 = *(code **)(iVar8 + 8);\n    *(undefined4 *)((int)piVar10 + -0x14) = 0x190f43;\n    (*pcVar3)();\n    param_1[5] = param_1[5] + -1;\n    *(undefined4 **)((int)piVar10 + -8) = local_a0;\n    *(int **)((int)piVar10 + -0xc) = piVar4;\n    *(undefined4 **)((int)piVar10 + -0x10) = param_1;\n                    \n    *(undefined4 *)((int)piVar10 + -0x14) = 0x190f57;\n    local_98 = (int *)FUN_00190b90();\n    if (local_98 == (int *)0x0) {\n      *(undefined4 **)((int)piVar10 + -0x10) = param_1;\n                    \n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191419;\n      local_98 = (int *)FUN_00190880();\n      if (local_98 != (int *)0x0) goto LAB_00190f68;\n    }\n    else {\nLAB_00190f68:\n      local_78[0] = 0;\n      ppuVar2 = *(undefined ***)(*local_98 + 0xc);\n      if (ppuVar2 != local_ac) {\n        *(undefined4 **)((int)piVar10 + -0xc) = local_a0;\n        *(int **)((int)piVar10 + -0x10) = local_98;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191441;\n        (*(code *)ppuVar2)();\n      }\n      param_1[5] = param_1[5] + 1;\n    }\n    iVar8 = *(int *)*param_1;\n    *(int **)((int)piVar10 + -0x10) = (int *)*param_1;\n    pcVar3 = *(code **)(iVar8 + 0xc);\n    *(undefined4 *)((int)piVar10 + -0x14) = 0x190f95;\n    (*pcVar3)();\n    ppuVar2 = *(undefined ***)(*piVar4 + 4);\n    if (ppuVar2 == local_90 + -0xc8ab8) {\n      *piVar4 = (int)(local_90 + -0x307b);\n      piVar7 = (int *)piVar4[9];\n      if (piVar7 != (int *)0x0) {\n        iVar8 = *piVar7;\n        *(int **)((int)piVar10 + -0x10) = piVar7;\n        pcVar3 = *(code **)(iVar8 + 4);\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x190fc9;\n        (*pcVar3)();\n      }\n      iVar8 = piVar4[10];\n      if (iVar8 != 0) {\n        if (*(int *)(iVar8 + 4) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 100;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915d4;\n          FUN_00069d00();\n        }\n        if (*(int *)(iVar8 + 8) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x65;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined1 **)((int)piVar10 + -0x14) = &LAB_001915f2;\n          FUN_00069d00();\n        }\n        if ((*(int *)(iVar8 + 0xc) != 0) || (*(int *)(iVar8 + 0x10) != 0)) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d215;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x2c;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915b6;\n          FUN_00069d00();\n        }\n        *(undefined4 *)((int)piVar10 + -0xc) = 0x14;\n        *(int *)((int)piVar10 + -0x10) = iVar8;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191010;\n        FUN_001e6d90();\n      }\n      *piVar4 = (int)(local_90 + -0x1717);\n      if ((int *)piVar4[2] != piVar4 + 4) {\n        *(int **)((int)piVar10 + -0x10) = (int *)piVar4[2];\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191034;\n        FUN_001e6db0();\n      }\n      *(undefined4 *)((int)piVar10 + -0xc) = 0x30;\n      *(int **)((int)piVar10 + -0x10) = piVar4;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191048;\n      FUN_001e6d90();\n      piVar4 = local_98;\n    }\n    else {\n      *(int **)((int)piVar10 + -0x10) = piVar4;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x1913d6;\n      (*(code *)ppuVar2)();\n      piVar4 = local_98;\n    }\n    local_98 = piVar4;\n    if (piVar4 == (int *)0x0) {\n      return 1;\n    }\n  } while( true );\n}\n\n" (function_definition "undefined4 FUN_00190e80(undefined4 *param_1,undefined4 param_2)\n\n{\n  undefined4 *puVar1;\n  undefined **ppuVar2;\n  code *pcVar3;\n  int *piVar4;\n  int iVar5;\n  size_t sVar6;\n  int *piVar7;\n  int iVar8;\n  undefined1 *puVar9;\n  int *piVar10;\n  undefined1 *puVar11;\n  int local_cc;\n  int *local_c8;\n  int local_c4;\n  int local_c0;\n  int local_bc;\n  undefined4 local_b8;\n  int local_b4;\n  int local_b0;\n  undefined **local_ac;\n  int *local_a8;\n  undefined **local_a4;\n  undefined4 *local_a0;\n  int **local_9c;\n  int *local_98;\n  undefined **local_94;\n  undefined **local_90;\n  int local_84;\n  int local_80;\n  int local_7c;\n  undefined4 local_78 [5];\n  int *local_64;\n  int local_60;\n  int local_5c [4];\n  int *local_4c;\n  int local_48;\n  int local_44 [13];\n  \n  local_90 = &__DT_PLTGOT;\n  local_78[0] = 0;\n  (**(code **)(*(int *)*param_1 + 8))((int *)*param_1);\n                    \n  piVar4 = (int *)FUN_001908c0(param_1,param_2);\n  if (piVar4 == (int *)0x0) {\n    (**(code **)(*(int *)*param_1 + 0xc))((int *)*param_1);\n    return 0;\n  }\n  local_a0 = local_78;\n  local_ac = local_90 + -0xc8b40;\n  if (*(undefined ***)(*piVar4 + 0xc) != local_ac) {\n                    \n    (*(code *)*(undefined ***)(*piVar4 + 0xc))(piVar4,local_a0);\n  }\n  piVar10 = &local_cc;\n  param_1[5] = param_1[5] + 1;\n  (**(code **)(*(int *)*param_1 + 0xc))((int *)*param_1);\n  local_94 = local_90 + 0xde;\n  local_a4 = local_90 + -0xc8b3c;\n  local_a8 = local_44;\n  local_9c = &local_4c;\n  do {\n    puVar1 = (undefined4 *)*local_94;\n    puVar9 = (undefined1 *)piVar10;\n    if ((puVar1[2] != 0) && ((*(byte *)(puVar1 + 5) & 1) != 0)) {\n      local_98 = (int *)*puVar1;\n      if (piVar4[3] == 0) {\n        ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n        if (ppuVar2 == local_90 + -0xc8a2c) {\n          iVar8 = piVar4[0xb];\n          local_4c = local_a8;\n          iVar5 = -1;\n          if (iVar8 != 0) {\n            *(int *)((int)piVar10 + -0x10) = iVar8;\n            *(undefined4 *)((int)piVar10 + -0x14) = 0x1910c6;\n            local_b0 = iVar8;\n            sVar6 = strlen(*(char **)((int)piVar10 + -0x10));\n            iVar5 = sVar6 + local_b0;\n            iVar8 = local_b0;\n          }\n          *(undefined4 *)((int)piVar10 + -4) = 0;\n          *(int *)((int)piVar10 + -8) = iVar5;\n          *(int *)((int)piVar10 + -0xc) = iVar8;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1910e0;\n          FUN_00050e40();\n        }\n        else {\n          *(int **)((int)piVar10 + -0xc) = piVar4;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1914bc;\n          (*(code *)ppuVar2)();\n          piVar10 = (int *)((int)piVar10 + -4);\n        }\n        piVar7 = (int *)piVar4[2];\n        if (local_4c == local_a8) {\n          if (local_48 != 0) {\n            if (local_48 == 1) {\n              *(undefined1 *)piVar7 = (undefined1)local_44[0];\n              piVar7 = (int *)piVar4[2];\n            }\n            else {\n              *(int *)((int)piVar10 + -8) = local_48;\n              *(int **)((int)piVar10 + -0xc) = local_a8;\n              *(int **)((int)piVar10 + -0x10) = piVar7;\n              *(undefined4 *)((int)piVar10 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8));\n              piVar7 = (int *)piVar4[2];\n            }\n          }\n          piVar4[3] = local_48;\n          *(undefined1 *)((int)piVar7 + local_48) = 0;\n          iVar8 = local_44[0];\n        }\n        else {\n          if (piVar7 == piVar4 + 4) {\n            piVar4[2] = (int)local_4c;\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n          }\n          else {\n            piVar4[2] = (int)local_4c;\n            iVar8 = piVar4[4];\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n            local_4c = piVar7;\n            if (piVar7 != (int *)0x0) goto LAB_00191120;\n          }\n          local_4c = local_a8;\n          iVar8 = local_44[0];\n        }\nLAB_00191120:\n        local_44[0] = iVar8;\n        local_48 = 0;\n        *(undefined1 *)local_4c = 0;\n        if (local_4c != local_a8) {\n          *(int **)((int)piVar10 + -0x10) = local_4c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x191144;\n          FUN_001e6db0();\n        }\n      }\n      *(int *)((int)piVar10 + -4) = piVar4[2];\n      *(undefined4 *)((int)piVar10 + -8) = param_2;\n      *(int *)((int)piVar10 + -0xc) = (int)local_90 + -0xf4943;\n      *(int **)((int)piVar10 + -0x10) = local_98;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191165;\n      FUN_000653f0();\n      puVar9 = (undefined1 *)piVar10;\n    }\n    *(int ***)(puVar9 + -0x10) = local_9c;\n    *(undefined4 *)(puVar9 + -0x14) = 0x19117c;\n    FUN_0018fff0();\n    if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {\n      *(int ***)(puVar9 + -0x10) = local_9c;\n      *(undefined4 *)(puVar9 + -0x14) = 0x1911a8;\n      thunk_FUN_00190010();\n    }\n    ppuVar2 = *(undefined ***)(*piVar4 + 0x10);\n    if (ppuVar2 == local_a4) {\n      piVar10 = (int *)piVar4[9];\n      iVar8 = *piVar10;\n      *(int **)(puVar9 + -8) = piVar4;\n      *(undefined4 **)(puVar9 + -0xc) = param_1;\n      *(int **)(puVar9 + -0x10) = piVar10;\n      pcVar3 = *(code **)(iVar8 + 8);\n      *(undefined4 *)(puVar9 + -0x14) = 0x1911ca;\n      (*pcVar3)();\n    }\n    else {\n      *(undefined4 **)(puVar9 + -0xc) = param_1;\n      *(int **)(puVar9 + -0x10) = piVar4;\n      *(undefined4 *)(puVar9 + -0x14) = 0x1913ff;\n      (*(code *)ppuVar2)();\n    }\n    piVar10 = (int *)puVar9;\n    if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {\n      *(int ***)(puVar9 + -0xc) = local_9c;\n      *(int **)(puVar9 + -0x10) = &local_84;\n      *(undefined4 *)(puVar9 + -0x14) = 0x191202;\n      FUN_001900d0();\n      puVar11 = puVar9 + -4;\n      puVar1 = (undefined4 *)*local_94;\n      piVar10 = (int *)(puVar9 + -4);\n      if ((puVar1[2] != 0) && (piVar10 = (int *)(puVar9 + -4), (*(byte *)(puVar1 + 5) & 1) != 0)) {\n        local_b8 = *puVar1;\n        local_bc = local_7c / 1000;\n        local_98 = (int *)((local_7c % 1000) * 1000);\n        local_c0 = local_80 / 1000;\n        local_b0 = (local_80 % 1000) * 1000;\n        local_c4 = local_84 / 1000;\n        local_b4 = (local_84 % 1000) * 1000;\n        if (piVar4[3] == 0) {\n          ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n          if (ppuVar2 == local_90 + -0xc8a2c) {\n            iVar8 = piVar4[0xb];\n            local_c8 = local_5c;\n            iVar5 = -1;\n            local_64 = local_c8;\n            if (iVar8 != 0) {\n              *(int *)(puVar9 + -0x14) = iVar8;\n              *(undefined4 *)(puVar9 + -0x18) = 0x1912ff;\n              local_cc = iVar8;\n              sVar6 = strlen(*(char **)(puVar9 + -0x14));\n              iVar5 = sVar6 + local_cc;\n              iVar8 = local_cc;\n            }\n            puVar11 = puVar9 + -4;\n            *(undefined4 *)(puVar9 + -8) = 0;\n            *(int *)(puVar9 + -0xc) = iVar5;\n            *(int *)(puVar9 + -0x10) = iVar8;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191317;\n            FUN_00050e40();\n          }\n          else {\n            *(int **)(puVar9 + -0x10) = piVar4;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191579;\n            (*(code *)ppuVar2)();\n            local_c8 = local_5c;\n            puVar11 = puVar9 + -8;\n          }\n          piVar10 = (int *)piVar4[2];\n          if (local_64 == local_c8) {\n            if (local_60 != 0) {\n              if (local_60 == 1) {\n                *(undefined1 *)piVar10 = (undefined1)local_5c[0];\n                piVar10 = (int *)piVar4[2];\n              }\n              else {\n                *(int *)(puVar11 + -8) = local_60;\n                *(int **)(puVar11 + -0xc) = local_c8;\n                *(int **)(puVar11 + -0x10) = piVar10;\n                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;\n                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));\n                piVar10 = (int *)piVar4[2];\n              }\n            }\n            piVar4[3] = local_60;\n            *(undefined1 *)((int)piVar10 + local_60) = 0;\n            piVar10 = local_64;\n            iVar8 = local_5c[0];\n          }\n          else {\n            if (piVar10 == piVar4 + 4) {\n              piVar4[2] = (int)local_64;\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n            }\n            else {\n              piVar4[2] = (int)local_64;\n              iVar8 = piVar4[4];\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n              local_64 = piVar10;\n              if (piVar10 != (int *)0x0) goto LAB_00191357;\n            }\n            local_64 = local_c8;\n            local_c8 = local_5c;\n            piVar10 = local_c8;\n            iVar8 = local_5c[0];\n          }\nLAB_00191357:\n          local_5c[0] = iVar8;\n          local_60 = 0;\n          *(undefined1 *)piVar10 = 0;\n          if (local_64 != local_c8) {\n            *(int **)(puVar11 + -0x10) = local_64;\n            *(undefined4 *)(puVar11 + -0x14) = 0x19137b;\n            FUN_001e6db0();\n          }\n        }\n        *(int **)(puVar11 + -0xc) = local_98;\n        *(int *)(puVar11 + -0x10) = local_bc;\n        *(int *)(puVar11 + -0x14) = local_b0;\n        *(int *)(puVar11 + -0x18) = local_c0;\n        *(int *)(puVar11 + -0x1c) = local_b4;\n        *(int *)(puVar11 + -0x20) = local_c4;\n        *(int *)(puVar11 + -0x24) = piVar4[2];\n        *(undefined4 *)(puVar11 + -0x28) = param_2;\n        *(undefined ***)(puVar11 + -0x2c) = local_90 + -0x3d24b;\n        *(undefined4 *)(puVar11 + -0x30) = local_b8;\n        *(undefined4 *)(puVar11 + -0x34) = 0x1913c3;\n        FUN_000653f0();\n        piVar10 = (int *)puVar11;\n      }\n    }\n    iVar8 = *(int *)*param_1;\n    *(int **)((int)piVar10 + -0x10) = (int *)*param_1;\n    pcVar3 = *(code **)(iVar8 + 8);\n    *(undefined4 *)((int)piVar10 + -0x14) = 0x190f43;\n    (*pcVar3)();\n    param_1[5] = param_1[5] + -1;\n    *(undefined4 **)((int)piVar10 + -8) = local_a0;\n    *(int **)((int)piVar10 + -0xc) = piVar4;\n    *(undefined4 **)((int)piVar10 + -0x10) = param_1;\n                    \n    *(undefined4 *)((int)piVar10 + -0x14) = 0x190f57;\n    local_98 = (int *)FUN_00190b90();\n    if (local_98 == (int *)0x0) {\n      *(undefined4 **)((int)piVar10 + -0x10) = param_1;\n                    \n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191419;\n      local_98 = (int *)FUN_00190880();\n      if (local_98 != (int *)0x0) goto LAB_00190f68;\n    }\n    else {\nLAB_00190f68:\n      local_78[0] = 0;\n      ppuVar2 = *(undefined ***)(*local_98 + 0xc);\n      if (ppuVar2 != local_ac) {\n        *(undefined4 **)((int)piVar10 + -0xc) = local_a0;\n        *(int **)((int)piVar10 + -0x10) = local_98;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191441;\n        (*(code *)ppuVar2)();\n      }\n      param_1[5] = param_1[5] + 1;\n    }\n    iVar8 = *(int *)*param_1;\n    *(int **)((int)piVar10 + -0x10) = (int *)*param_1;\n    pcVar3 = *(code **)(iVar8 + 0xc);\n    *(undefined4 *)((int)piVar10 + -0x14) = 0x190f95;\n    (*pcVar3)();\n    ppuVar2 = *(undefined ***)(*piVar4 + 4);\n    if (ppuVar2 == local_90 + -0xc8ab8) {\n      *piVar4 = (int)(local_90 + -0x307b);\n      piVar7 = (int *)piVar4[9];\n      if (piVar7 != (int *)0x0) {\n        iVar8 = *piVar7;\n        *(int **)((int)piVar10 + -0x10) = piVar7;\n        pcVar3 = *(code **)(iVar8 + 4);\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x190fc9;\n        (*pcVar3)();\n      }\n      iVar8 = piVar4[10];\n      if (iVar8 != 0) {\n        if (*(int *)(iVar8 + 4) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 100;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915d4;\n          FUN_00069d00();\n        }\n        if (*(int *)(iVar8 + 8) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x65;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined1 **)((int)piVar10 + -0x14) = &LAB_001915f2;\n          FUN_00069d00();\n        }\n        if ((*(int *)(iVar8 + 0xc) != 0) || (*(int *)(iVar8 + 0x10) != 0)) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d215;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x2c;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915b6;\n          FUN_00069d00();\n        }\n        *(undefined4 *)((int)piVar10 + -0xc) = 0x14;\n        *(int *)((int)piVar10 + -0x10) = iVar8;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191010;\n        FUN_001e6d90();\n      }\n      *piVar4 = (int)(local_90 + -0x1717);\n      if ((int *)piVar4[2] != piVar4 + 4) {\n        *(int **)((int)piVar10 + -0x10) = (int *)piVar4[2];\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191034;\n        FUN_001e6db0();\n      }\n      *(undefined4 *)((int)piVar10 + -0xc) = 0x30;\n      *(int **)((int)piVar10 + -0x10) = piVar4;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191048;\n      FUN_001e6d90();\n      piVar4 = local_98;\n    }\n    else {\n      *(int **)((int)piVar10 + -0x10) = piVar4;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x1913d6;\n      (*(code *)ppuVar2)();\n      piVar4 = local_98;\n    }\n    local_98 = piVar4;\n    if (piVar4 == (int *)0x0) {\n      return 1;\n    }\n  } while( true );\n}" type_identifier (function_declarator "FUN_00190e80(undefined4 *param_1,undefined4 param_2)" identifier (parameter_list "(undefined4 *param_1,undefined4 param_2)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) ))) (compound_statement "{\n  undefined4 *puVar1;\n  undefined **ppuVar2;\n  code *pcVar3;\n  int *piVar4;\n  int iVar5;\n  size_t sVar6;\n  int *piVar7;\n  int iVar8;\n  undefined1 *puVar9;\n  int *piVar10;\n  undefined1 *puVar11;\n  int local_cc;\n  int *local_c8;\n  int local_c4;\n  int local_c0;\n  int local_bc;\n  undefined4 local_b8;\n  int local_b4;\n  int local_b0;\n  undefined **local_ac;\n  int *local_a8;\n  undefined **local_a4;\n  undefined4 *local_a0;\n  int **local_9c;\n  int *local_98;\n  undefined **local_94;\n  undefined **local_90;\n  int local_84;\n  int local_80;\n  int local_7c;\n  undefined4 local_78 [5];\n  int *local_64;\n  int local_60;\n  int local_5c [4];\n  int *local_4c;\n  int local_48;\n  int local_44 [13];\n  \n  local_90 = &__DT_PLTGOT;\n  local_78[0] = 0;\n  (**(code **)(*(int *)*param_1 + 8))((int *)*param_1);\n                    \n  piVar4 = (int *)FUN_001908c0(param_1,param_2);\n  if (piVar4 == (int *)0x0) {\n    (**(code **)(*(int *)*param_1 + 0xc))((int *)*param_1);\n    return 0;\n  }\n  local_a0 = local_78;\n  local_ac = local_90 + -0xc8b40;\n  if (*(undefined ***)(*piVar4 + 0xc) != local_ac) {\n                    \n    (*(code *)*(undefined ***)(*piVar4 + 0xc))(piVar4,local_a0);\n  }\n  piVar10 = &local_cc;\n  param_1[5] = param_1[5] + 1;\n  (**(code **)(*(int *)*param_1 + 0xc))((int *)*param_1);\n  local_94 = local_90 + 0xde;\n  local_a4 = local_90 + -0xc8b3c;\n  local_a8 = local_44;\n  local_9c = &local_4c;\n  do {\n    puVar1 = (undefined4 *)*local_94;\n    puVar9 = (undefined1 *)piVar10;\n    if ((puVar1[2] != 0) && ((*(byte *)(puVar1 + 5) & 1) != 0)) {\n      local_98 = (int *)*puVar1;\n      if (piVar4[3] == 0) {\n        ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n        if (ppuVar2 == local_90 + -0xc8a2c) {\n          iVar8 = piVar4[0xb];\n          local_4c = local_a8;\n          iVar5 = -1;\n          if (iVar8 != 0) {\n            *(int *)((int)piVar10 + -0x10) = iVar8;\n            *(undefined4 *)((int)piVar10 + -0x14) = 0x1910c6;\n            local_b0 = iVar8;\n            sVar6 = strlen(*(char **)((int)piVar10 + -0x10));\n            iVar5 = sVar6 + local_b0;\n            iVar8 = local_b0;\n          }\n          *(undefined4 *)((int)piVar10 + -4) = 0;\n          *(int *)((int)piVar10 + -8) = iVar5;\n          *(int *)((int)piVar10 + -0xc) = iVar8;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1910e0;\n          FUN_00050e40();\n        }\n        else {\n          *(int **)((int)piVar10 + -0xc) = piVar4;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1914bc;\n          (*(code *)ppuVar2)();\n          piVar10 = (int *)((int)piVar10 + -4);\n        }\n        piVar7 = (int *)piVar4[2];\n        if (local_4c == local_a8) {\n          if (local_48 != 0) {\n            if (local_48 == 1) {\n              *(undefined1 *)piVar7 = (undefined1)local_44[0];\n              piVar7 = (int *)piVar4[2];\n            }\n            else {\n              *(int *)((int)piVar10 + -8) = local_48;\n              *(int **)((int)piVar10 + -0xc) = local_a8;\n              *(int **)((int)piVar10 + -0x10) = piVar7;\n              *(undefined4 *)((int)piVar10 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8));\n              piVar7 = (int *)piVar4[2];\n            }\n          }\n          piVar4[3] = local_48;\n          *(undefined1 *)((int)piVar7 + local_48) = 0;\n          iVar8 = local_44[0];\n        }\n        else {\n          if (piVar7 == piVar4 + 4) {\n            piVar4[2] = (int)local_4c;\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n          }\n          else {\n            piVar4[2] = (int)local_4c;\n            iVar8 = piVar4[4];\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n            local_4c = piVar7;\n            if (piVar7 != (int *)0x0) goto LAB_00191120;\n          }\n          local_4c = local_a8;\n          iVar8 = local_44[0];\n        }\nLAB_00191120:\n        local_44[0] = iVar8;\n        local_48 = 0;\n        *(undefined1 *)local_4c = 0;\n        if (local_4c != local_a8) {\n          *(int **)((int)piVar10 + -0x10) = local_4c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x191144;\n          FUN_001e6db0();\n        }\n      }\n      *(int *)((int)piVar10 + -4) = piVar4[2];\n      *(undefined4 *)((int)piVar10 + -8) = param_2;\n      *(int *)((int)piVar10 + -0xc) = (int)local_90 + -0xf4943;\n      *(int **)((int)piVar10 + -0x10) = local_98;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191165;\n      FUN_000653f0();\n      puVar9 = (undefined1 *)piVar10;\n    }\n    *(int ***)(puVar9 + -0x10) = local_9c;\n    *(undefined4 *)(puVar9 + -0x14) = 0x19117c;\n    FUN_0018fff0();\n    if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {\n      *(int ***)(puVar9 + -0x10) = local_9c;\n      *(undefined4 *)(puVar9 + -0x14) = 0x1911a8;\n      thunk_FUN_00190010();\n    }\n    ppuVar2 = *(undefined ***)(*piVar4 + 0x10);\n    if (ppuVar2 == local_a4) {\n      piVar10 = (int *)piVar4[9];\n      iVar8 = *piVar10;\n      *(int **)(puVar9 + -8) = piVar4;\n      *(undefined4 **)(puVar9 + -0xc) = param_1;\n      *(int **)(puVar9 + -0x10) = piVar10;\n      pcVar3 = *(code **)(iVar8 + 8);\n      *(undefined4 *)(puVar9 + -0x14) = 0x1911ca;\n      (*pcVar3)();\n    }\n    else {\n      *(undefined4 **)(puVar9 + -0xc) = param_1;\n      *(int **)(puVar9 + -0x10) = piVar4;\n      *(undefined4 *)(puVar9 + -0x14) = 0x1913ff;\n      (*(code *)ppuVar2)();\n    }\n    piVar10 = (int *)puVar9;\n    if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {\n      *(int ***)(puVar9 + -0xc) = local_9c;\n      *(int **)(puVar9 + -0x10) = &local_84;\n      *(undefined4 *)(puVar9 + -0x14) = 0x191202;\n      FUN_001900d0();\n      puVar11 = puVar9 + -4;\n      puVar1 = (undefined4 *)*local_94;\n      piVar10 = (int *)(puVar9 + -4);\n      if ((puVar1[2] != 0) && (piVar10 = (int *)(puVar9 + -4), (*(byte *)(puVar1 + 5) & 1) != 0)) {\n        local_b8 = *puVar1;\n        local_bc = local_7c / 1000;\n        local_98 = (int *)((local_7c % 1000) * 1000);\n        local_c0 = local_80 / 1000;\n        local_b0 = (local_80 % 1000) * 1000;\n        local_c4 = local_84 / 1000;\n        local_b4 = (local_84 % 1000) * 1000;\n        if (piVar4[3] == 0) {\n          ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n          if (ppuVar2 == local_90 + -0xc8a2c) {\n            iVar8 = piVar4[0xb];\n            local_c8 = local_5c;\n            iVar5 = -1;\n            local_64 = local_c8;\n            if (iVar8 != 0) {\n              *(int *)(puVar9 + -0x14) = iVar8;\n              *(undefined4 *)(puVar9 + -0x18) = 0x1912ff;\n              local_cc = iVar8;\n              sVar6 = strlen(*(char **)(puVar9 + -0x14));\n              iVar5 = sVar6 + local_cc;\n              iVar8 = local_cc;\n            }\n            puVar11 = puVar9 + -4;\n            *(undefined4 *)(puVar9 + -8) = 0;\n            *(int *)(puVar9 + -0xc) = iVar5;\n            *(int *)(puVar9 + -0x10) = iVar8;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191317;\n            FUN_00050e40();\n          }\n          else {\n            *(int **)(puVar9 + -0x10) = piVar4;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191579;\n            (*(code *)ppuVar2)();\n            local_c8 = local_5c;\n            puVar11 = puVar9 + -8;\n          }\n          piVar10 = (int *)piVar4[2];\n          if (local_64 == local_c8) {\n            if (local_60 != 0) {\n              if (local_60 == 1) {\n                *(undefined1 *)piVar10 = (undefined1)local_5c[0];\n                piVar10 = (int *)piVar4[2];\n              }\n              else {\n                *(int *)(puVar11 + -8) = local_60;\n                *(int **)(puVar11 + -0xc) = local_c8;\n                *(int **)(puVar11 + -0x10) = piVar10;\n                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;\n                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));\n                piVar10 = (int *)piVar4[2];\n              }\n            }\n            piVar4[3] = local_60;\n            *(undefined1 *)((int)piVar10 + local_60) = 0;\n            piVar10 = local_64;\n            iVar8 = local_5c[0];\n          }\n          else {\n            if (piVar10 == piVar4 + 4) {\n              piVar4[2] = (int)local_64;\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n            }\n            else {\n              piVar4[2] = (int)local_64;\n              iVar8 = piVar4[4];\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n              local_64 = piVar10;\n              if (piVar10 != (int *)0x0) goto LAB_00191357;\n            }\n            local_64 = local_c8;\n            local_c8 = local_5c;\n            piVar10 = local_c8;\n            iVar8 = local_5c[0];\n          }\nLAB_00191357:\n          local_5c[0] = iVar8;\n          local_60 = 0;\n          *(undefined1 *)piVar10 = 0;\n          if (local_64 != local_c8) {\n            *(int **)(puVar11 + -0x10) = local_64;\n            *(undefined4 *)(puVar11 + -0x14) = 0x19137b;\n            FUN_001e6db0();\n          }\n        }\n        *(int **)(puVar11 + -0xc) = local_98;\n        *(int *)(puVar11 + -0x10) = local_bc;\n        *(int *)(puVar11 + -0x14) = local_b0;\n        *(int *)(puVar11 + -0x18) = local_c0;\n        *(int *)(puVar11 + -0x1c) = local_b4;\n        *(int *)(puVar11 + -0x20) = local_c4;\n        *(int *)(puVar11 + -0x24) = piVar4[2];\n        *(undefined4 *)(puVar11 + -0x28) = param_2;\n        *(undefined ***)(puVar11 + -0x2c) = local_90 + -0x3d24b;\n        *(undefined4 *)(puVar11 + -0x30) = local_b8;\n        *(undefined4 *)(puVar11 + -0x34) = 0x1913c3;\n        FUN_000653f0();\n        piVar10 = (int *)puVar11;\n      }\n    }\n    iVar8 = *(int *)*param_1;\n    *(int **)((int)piVar10 + -0x10) = (int *)*param_1;\n    pcVar3 = *(code **)(iVar8 + 8);\n    *(undefined4 *)((int)piVar10 + -0x14) = 0x190f43;\n    (*pcVar3)();\n    param_1[5] = param_1[5] + -1;\n    *(undefined4 **)((int)piVar10 + -8) = local_a0;\n    *(int **)((int)piVar10 + -0xc) = piVar4;\n    *(undefined4 **)((int)piVar10 + -0x10) = param_1;\n                    \n    *(undefined4 *)((int)piVar10 + -0x14) = 0x190f57;\n    local_98 = (int *)FUN_00190b90();\n    if (local_98 == (int *)0x0) {\n      *(undefined4 **)((int)piVar10 + -0x10) = param_1;\n                    \n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191419;\n      local_98 = (int *)FUN_00190880();\n      if (local_98 != (int *)0x0) goto LAB_00190f68;\n    }\n    else {\nLAB_00190f68:\n      local_78[0] = 0;\n      ppuVar2 = *(undefined ***)(*local_98 + 0xc);\n      if (ppuVar2 != local_ac) {\n        *(undefined4 **)((int)piVar10 + -0xc) = local_a0;\n        *(int **)((int)piVar10 + -0x10) = local_98;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191441;\n        (*(code *)ppuVar2)();\n      }\n      param_1[5] = param_1[5] + 1;\n    }\n    iVar8 = *(int *)*param_1;\n    *(int **)((int)piVar10 + -0x10) = (int *)*param_1;\n    pcVar3 = *(code **)(iVar8 + 0xc);\n    *(undefined4 *)((int)piVar10 + -0x14) = 0x190f95;\n    (*pcVar3)();\n    ppuVar2 = *(undefined ***)(*piVar4 + 4);\n    if (ppuVar2 == local_90 + -0xc8ab8) {\n      *piVar4 = (int)(local_90 + -0x307b);\n      piVar7 = (int *)piVar4[9];\n      if (piVar7 != (int *)0x0) {\n        iVar8 = *piVar7;\n        *(int **)((int)piVar10 + -0x10) = piVar7;\n        pcVar3 = *(code **)(iVar8 + 4);\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x190fc9;\n        (*pcVar3)();\n      }\n      iVar8 = piVar4[10];\n      if (iVar8 != 0) {\n        if (*(int *)(iVar8 + 4) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 100;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915d4;\n          FUN_00069d00();\n        }\n        if (*(int *)(iVar8 + 8) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x65;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined1 **)((int)piVar10 + -0x14) = &LAB_001915f2;\n          FUN_00069d00();\n        }\n        if ((*(int *)(iVar8 + 0xc) != 0) || (*(int *)(iVar8 + 0x10) != 0)) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d215;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x2c;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915b6;\n          FUN_00069d00();\n        }\n        *(undefined4 *)((int)piVar10 + -0xc) = 0x14;\n        *(int *)((int)piVar10 + -0x10) = iVar8;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191010;\n        FUN_001e6d90();\n      }\n      *piVar4 = (int)(local_90 + -0x1717);\n      if ((int *)piVar4[2] != piVar4 + 4) {\n        *(int **)((int)piVar10 + -0x10) = (int *)piVar4[2];\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191034;\n        FUN_001e6db0();\n      }\n      *(undefined4 *)((int)piVar10 + -0xc) = 0x30;\n      *(int **)((int)piVar10 + -0x10) = piVar4;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191048;\n      FUN_001e6d90();\n      piVar4 = local_98;\n    }\n    else {\n      *(int **)((int)piVar10 + -0x10) = piVar4;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x1913d6;\n      (*(code *)ppuVar2)();\n      piVar4 = local_98;\n    }\n    local_98 = piVar4;\n    if (piVar4 == (int *)0x0) {\n      return 1;\n    }\n  } while( true );\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined **ppuVar2;" type_identifier (pointer_declarator "**ppuVar2" * (pointer_declarator "*ppuVar2" * identifier)) ;) (declaration "code *pcVar3;" type_identifier (pointer_declarator "*pcVar3" * identifier) ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "size_t sVar6;" primitive_type identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined1 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "undefined1 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "int local_cc;" primitive_type identifier ;) (declaration "int *local_c8;" primitive_type (pointer_declarator "*local_c8" * identifier) ;) (declaration "int local_c4;" primitive_type identifier ;) (declaration "int local_c0;" primitive_type identifier ;) (declaration "int local_bc;" primitive_type identifier ;) (declaration "undefined4 local_b8;" type_identifier identifier ;) (declaration "int local_b4;" primitive_type identifier ;) (declaration "int local_b0;" primitive_type identifier ;) (declaration "undefined **local_ac;" type_identifier (pointer_declarator "**local_ac" * (pointer_declarator "*local_ac" * identifier)) ;) (declaration "int *local_a8;" primitive_type (pointer_declarator "*local_a8" * identifier) ;) (declaration "undefined **local_a4;" type_identifier (pointer_declarator "**local_a4" * (pointer_declarator "*local_a4" * identifier)) ;) (declaration "undefined4 *local_a0;" type_identifier (pointer_declarator "*local_a0" * identifier) ;) (declaration "int **local_9c;" primitive_type (pointer_declarator "**local_9c" * (pointer_declarator "*local_9c" * identifier)) ;) (declaration "int *local_98;" primitive_type (pointer_declarator "*local_98" * identifier) ;) (declaration "undefined **local_94;" type_identifier (pointer_declarator "**local_94" * (pointer_declarator "*local_94" * identifier)) ;) (declaration "undefined **local_90;" type_identifier (pointer_declarator "**local_90" * (pointer_declarator "*local_90" * identifier)) ;) (declaration "int local_84;" primitive_type identifier ;) (declaration "int local_80;" primitive_type identifier ;) (declaration "int local_7c;" primitive_type identifier ;) (declaration "undefined4 local_78 [5];" type_identifier (array_declarator "local_78 [5]" identifier [ number_literal ]) ;) (declaration "int *local_64;" primitive_type (pointer_declarator "*local_64" * identifier) ;) (declaration "int local_60;" primitive_type identifier ;) (declaration "int local_5c [4];" primitive_type (array_declarator "local_5c [4]" identifier [ number_literal ]) ;) (declaration "int *local_4c;" primitive_type (pointer_declarator "*local_4c" * identifier) ;) (declaration "int local_48;" primitive_type identifier ;) (declaration "int local_44 [13];" primitive_type (array_declarator "local_44 [13]" identifier [ number_literal ]) ;) (expression_statement "local_90 = &__DT_PLTGOT;" (assignment_expression "local_90 = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "local_78[0] = 0;" (assignment_expression "local_78[0] = 0" (subscript_expression "local_78[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "(**(code **)(*(int *)*param_1 + 8))((int *)*param_1);" (call_expression "(**(code **)(*(int *)*param_1 + 8))((int *)*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 "*" *)) ) (pointer_expression "*param_1" * identifier))) + number_literal) ))))) )) (argument_list "((int *)*param_1)" ( (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) ))) ;) (expression_statement "piVar4 = (int *)FUN_001908c0(param_1,param_2);" (assignment_expression "piVar4 = (int *)FUN_001908c0(param_1,param_2)" identifier = (cast_expression "(int *)FUN_001908c0(param_1,param_2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001908c0(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier ))))) ;) (if_statement "if (piVar4 == (int *)0x0) {\n    (**(code **)(*(int *)*param_1 + 0xc))((int *)*param_1);\n    return 0;\n  }" if (parenthesized_expression "(piVar4 == (int *)0x0)" ( (binary_expression "piVar4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(*(int *)*param_1 + 0xc))((int *)*param_1);\n    return 0;\n  }" { (expression_statement "(**(code **)(*(int *)*param_1 + 0xc))((int *)*param_1);" (call_expression "(**(code **)(*(int *)*param_1 + 0xc))((int *)*param_1)" (parenthesized_expression "(**(code **)(*(int *)*param_1 + 0xc))" ( (pointer_expression "**(code **)(*(int *)*param_1 + 0xc)" * (pointer_expression "*(code **)(*(int *)*param_1 + 0xc)" * (cast_expression "(code **)(*(int *)*param_1 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)*param_1 + 0xc)" ( (binary_expression "*(int *)*param_1 + 0xc" (pointer_expression "*(int *)*param_1" * (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) + number_literal) ))))) )) (argument_list "((int *)*param_1)" ( (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "local_a0 = local_78;" (assignment_expression "local_a0 = local_78" identifier = identifier) ;) (expression_statement "local_ac = local_90 + -0xc8b40;" (assignment_expression "local_ac = local_90 + -0xc8b40" identifier = (binary_expression "local_90 + -0xc8b40" identifier + number_literal)) ;) (if_statement "if (*(undefined ***)(*piVar4 + 0xc) != local_ac) {\n                    \n    (*(code *)*(undefined ***)(*piVar4 + 0xc))(piVar4,local_a0);\n  }" if (parenthesized_expression "(*(undefined ***)(*piVar4 + 0xc) != local_ac)" ( (binary_expression "*(undefined ***)(*piVar4 + 0xc) != local_ac" (pointer_expression "*(undefined ***)(*piVar4 + 0xc)" * (cast_expression "(undefined ***)(*piVar4 + 0xc)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(*piVar4 + 0xc)" ( (binary_expression "*piVar4 + 0xc" (pointer_expression "*piVar4" * identifier) + number_literal) )))) != identifier) )) (compound_statement "{\n                    \n    (*(code *)*(undefined ***)(*piVar4 + 0xc))(piVar4,local_a0);\n  }" { (expression_statement "(*(code *)*(undefined ***)(*piVar4 + 0xc))(piVar4,local_a0);" (call_expression "(*(code *)*(undefined ***)(*piVar4 + 0xc))(piVar4,local_a0)" (parenthesized_expression "(*(code *)*(undefined ***)(*piVar4 + 0xc))" ( (pointer_expression "*(code *)*(undefined ***)(*piVar4 + 0xc)" * (cast_expression "(code *)*(undefined ***)(*piVar4 + 0xc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*(undefined ***)(*piVar4 + 0xc)" * (cast_expression "(undefined ***)(*piVar4 + 0xc)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(*piVar4 + 0xc)" ( (binary_expression "*piVar4 + 0xc" (pointer_expression "*piVar4" * identifier) + number_literal) )))))) )) (argument_list "(piVar4,local_a0)" ( identifier , identifier ))) ;) })) (expression_statement "piVar10 = &local_cc;" (assignment_expression "piVar10 = &local_cc" identifier = (pointer_expression "&local_cc" & identifier)) ;) (expression_statement "param_1[5] = param_1[5] + 1;" (assignment_expression "param_1[5] = param_1[5] + 1" (subscript_expression "param_1[5]" identifier [ number_literal ]) = (binary_expression "param_1[5] + 1" (subscript_expression "param_1[5]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "(**(code **)(*(int *)*param_1 + 0xc))((int *)*param_1);" (call_expression "(**(code **)(*(int *)*param_1 + 0xc))((int *)*param_1)" (parenthesized_expression "(**(code **)(*(int *)*param_1 + 0xc))" ( (pointer_expression "**(code **)(*(int *)*param_1 + 0xc)" * (pointer_expression "*(code **)(*(int *)*param_1 + 0xc)" * (cast_expression "(code **)(*(int *)*param_1 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)*param_1 + 0xc)" ( (binary_expression "*(int *)*param_1 + 0xc" (pointer_expression "*(int *)*param_1" * (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) + number_literal) ))))) )) (argument_list "((int *)*param_1)" ( (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)) ))) ;) (expression_statement "local_94 = local_90 + 0xde;" (assignment_expression "local_94 = local_90 + 0xde" identifier = (binary_expression "local_90 + 0xde" identifier + number_literal)) ;) (expression_statement "local_a4 = local_90 + -0xc8b3c;" (assignment_expression "local_a4 = local_90 + -0xc8b3c" identifier = (binary_expression "local_90 + -0xc8b3c" identifier + number_literal)) ;) (expression_statement "local_a8 = local_44;" (assignment_expression "local_a8 = local_44" identifier = identifier) ;) (expression_statement "local_9c = &local_4c;" (assignment_expression "local_9c = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;) (do_statement "do {\n    puVar1 = (undefined4 *)*local_94;\n    puVar9 = (undefined1 *)piVar10;\n    if ((puVar1[2] != 0) && ((*(byte *)(puVar1 + 5) & 1) != 0)) {\n      local_98 = (int *)*puVar1;\n      if (piVar4[3] == 0) {\n        ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n        if (ppuVar2 == local_90 + -0xc8a2c) {\n          iVar8 = piVar4[0xb];\n          local_4c = local_a8;\n          iVar5 = -1;\n          if (iVar8 != 0) {\n            *(int *)((int)piVar10 + -0x10) = iVar8;\n            *(undefined4 *)((int)piVar10 + -0x14) = 0x1910c6;\n            local_b0 = iVar8;\n            sVar6 = strlen(*(char **)((int)piVar10 + -0x10));\n            iVar5 = sVar6 + local_b0;\n            iVar8 = local_b0;\n          }\n          *(undefined4 *)((int)piVar10 + -4) = 0;\n          *(int *)((int)piVar10 + -8) = iVar5;\n          *(int *)((int)piVar10 + -0xc) = iVar8;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1910e0;\n          FUN_00050e40();\n        }\n        else {\n          *(int **)((int)piVar10 + -0xc) = piVar4;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1914bc;\n          (*(code *)ppuVar2)();\n          piVar10 = (int *)((int)piVar10 + -4);\n        }\n        piVar7 = (int *)piVar4[2];\n        if (local_4c == local_a8) {\n          if (local_48 != 0) {\n            if (local_48 == 1) {\n              *(undefined1 *)piVar7 = (undefined1)local_44[0];\n              piVar7 = (int *)piVar4[2];\n            }\n            else {\n              *(int *)((int)piVar10 + -8) = local_48;\n              *(int **)((int)piVar10 + -0xc) = local_a8;\n              *(int **)((int)piVar10 + -0x10) = piVar7;\n              *(undefined4 *)((int)piVar10 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8));\n              piVar7 = (int *)piVar4[2];\n            }\n          }\n          piVar4[3] = local_48;\n          *(undefined1 *)((int)piVar7 + local_48) = 0;\n          iVar8 = local_44[0];\n        }\n        else {\n          if (piVar7 == piVar4 + 4) {\n            piVar4[2] = (int)local_4c;\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n          }\n          else {\n            piVar4[2] = (int)local_4c;\n            iVar8 = piVar4[4];\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n            local_4c = piVar7;\n            if (piVar7 != (int *)0x0) goto LAB_00191120;\n          }\n          local_4c = local_a8;\n          iVar8 = local_44[0];\n        }\nLAB_00191120:\n        local_44[0] = iVar8;\n        local_48 = 0;\n        *(undefined1 *)local_4c = 0;\n        if (local_4c != local_a8) {\n          *(int **)((int)piVar10 + -0x10) = local_4c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x191144;\n          FUN_001e6db0();\n        }\n      }\n      *(int *)((int)piVar10 + -4) = piVar4[2];\n      *(undefined4 *)((int)piVar10 + -8) = param_2;\n      *(int *)((int)piVar10 + -0xc) = (int)local_90 + -0xf4943;\n      *(int **)((int)piVar10 + -0x10) = local_98;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191165;\n      FUN_000653f0();\n      puVar9 = (undefined1 *)piVar10;\n    }\n    *(int ***)(puVar9 + -0x10) = local_9c;\n    *(undefined4 *)(puVar9 + -0x14) = 0x19117c;\n    FUN_0018fff0();\n    if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {\n      *(int ***)(puVar9 + -0x10) = local_9c;\n      *(undefined4 *)(puVar9 + -0x14) = 0x1911a8;\n      thunk_FUN_00190010();\n    }\n    ppuVar2 = *(undefined ***)(*piVar4 + 0x10);\n    if (ppuVar2 == local_a4) {\n      piVar10 = (int *)piVar4[9];\n      iVar8 = *piVar10;\n      *(int **)(puVar9 + -8) = piVar4;\n      *(undefined4 **)(puVar9 + -0xc) = param_1;\n      *(int **)(puVar9 + -0x10) = piVar10;\n      pcVar3 = *(code **)(iVar8 + 8);\n      *(undefined4 *)(puVar9 + -0x14) = 0x1911ca;\n      (*pcVar3)();\n    }\n    else {\n      *(undefined4 **)(puVar9 + -0xc) = param_1;\n      *(int **)(puVar9 + -0x10) = piVar4;\n      *(undefined4 *)(puVar9 + -0x14) = 0x1913ff;\n      (*(code *)ppuVar2)();\n    }\n    piVar10 = (int *)puVar9;\n    if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {\n      *(int ***)(puVar9 + -0xc) = local_9c;\n      *(int **)(puVar9 + -0x10) = &local_84;\n      *(undefined4 *)(puVar9 + -0x14) = 0x191202;\n      FUN_001900d0();\n      puVar11 = puVar9 + -4;\n      puVar1 = (undefined4 *)*local_94;\n      piVar10 = (int *)(puVar9 + -4);\n      if ((puVar1[2] != 0) && (piVar10 = (int *)(puVar9 + -4), (*(byte *)(puVar1 + 5) & 1) != 0)) {\n        local_b8 = *puVar1;\n        local_bc = local_7c / 1000;\n        local_98 = (int *)((local_7c % 1000) * 1000);\n        local_c0 = local_80 / 1000;\n        local_b0 = (local_80 % 1000) * 1000;\n        local_c4 = local_84 / 1000;\n        local_b4 = (local_84 % 1000) * 1000;\n        if (piVar4[3] == 0) {\n          ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n          if (ppuVar2 == local_90 + -0xc8a2c) {\n            iVar8 = piVar4[0xb];\n            local_c8 = local_5c;\n            iVar5 = -1;\n            local_64 = local_c8;\n            if (iVar8 != 0) {\n              *(int *)(puVar9 + -0x14) = iVar8;\n              *(undefined4 *)(puVar9 + -0x18) = 0x1912ff;\n              local_cc = iVar8;\n              sVar6 = strlen(*(char **)(puVar9 + -0x14));\n              iVar5 = sVar6 + local_cc;\n              iVar8 = local_cc;\n            }\n            puVar11 = puVar9 + -4;\n            *(undefined4 *)(puVar9 + -8) = 0;\n            *(int *)(puVar9 + -0xc) = iVar5;\n            *(int *)(puVar9 + -0x10) = iVar8;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191317;\n            FUN_00050e40();\n          }\n          else {\n            *(int **)(puVar9 + -0x10) = piVar4;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191579;\n            (*(code *)ppuVar2)();\n            local_c8 = local_5c;\n            puVar11 = puVar9 + -8;\n          }\n          piVar10 = (int *)piVar4[2];\n          if (local_64 == local_c8) {\n            if (local_60 != 0) {\n              if (local_60 == 1) {\n                *(undefined1 *)piVar10 = (undefined1)local_5c[0];\n                piVar10 = (int *)piVar4[2];\n              }\n              else {\n                *(int *)(puVar11 + -8) = local_60;\n                *(int **)(puVar11 + -0xc) = local_c8;\n                *(int **)(puVar11 + -0x10) = piVar10;\n                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;\n                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));\n                piVar10 = (int *)piVar4[2];\n              }\n            }\n            piVar4[3] = local_60;\n            *(undefined1 *)((int)piVar10 + local_60) = 0;\n            piVar10 = local_64;\n            iVar8 = local_5c[0];\n          }\n          else {\n            if (piVar10 == piVar4 + 4) {\n              piVar4[2] = (int)local_64;\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n            }\n            else {\n              piVar4[2] = (int)local_64;\n              iVar8 = piVar4[4];\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n              local_64 = piVar10;\n              if (piVar10 != (int *)0x0) goto LAB_00191357;\n            }\n            local_64 = local_c8;\n            local_c8 = local_5c;\n            piVar10 = local_c8;\n            iVar8 = local_5c[0];\n          }\nLAB_00191357:\n          local_5c[0] = iVar8;\n          local_60 = 0;\n          *(undefined1 *)piVar10 = 0;\n          if (local_64 != local_c8) {\n            *(int **)(puVar11 + -0x10) = local_64;\n            *(undefined4 *)(puVar11 + -0x14) = 0x19137b;\n            FUN_001e6db0();\n          }\n        }\n        *(int **)(puVar11 + -0xc) = local_98;\n        *(int *)(puVar11 + -0x10) = local_bc;\n        *(int *)(puVar11 + -0x14) = local_b0;\n        *(int *)(puVar11 + -0x18) = local_c0;\n        *(int *)(puVar11 + -0x1c) = local_b4;\n        *(int *)(puVar11 + -0x20) = local_c4;\n        *(int *)(puVar11 + -0x24) = piVar4[2];\n        *(undefined4 *)(puVar11 + -0x28) = param_2;\n        *(undefined ***)(puVar11 + -0x2c) = local_90 + -0x3d24b;\n        *(undefined4 *)(puVar11 + -0x30) = local_b8;\n        *(undefined4 *)(puVar11 + -0x34) = 0x1913c3;\n        FUN_000653f0();\n        piVar10 = (int *)puVar11;\n      }\n    }\n    iVar8 = *(int *)*param_1;\n    *(int **)((int)piVar10 + -0x10) = (int *)*param_1;\n    pcVar3 = *(code **)(iVar8 + 8);\n    *(undefined4 *)((int)piVar10 + -0x14) = 0x190f43;\n    (*pcVar3)();\n    param_1[5] = param_1[5] + -1;\n    *(undefined4 **)((int)piVar10 + -8) = local_a0;\n    *(int **)((int)piVar10 + -0xc) = piVar4;\n    *(undefined4 **)((int)piVar10 + -0x10) = param_1;\n                    \n    *(undefined4 *)((int)piVar10 + -0x14) = 0x190f57;\n    local_98 = (int *)FUN_00190b90();\n    if (local_98 == (int *)0x0) {\n      *(undefined4 **)((int)piVar10 + -0x10) = param_1;\n                    \n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191419;\n      local_98 = (int *)FUN_00190880();\n      if (local_98 != (int *)0x0) goto LAB_00190f68;\n    }\n    else {\nLAB_00190f68:\n      local_78[0] = 0;\n      ppuVar2 = *(undefined ***)(*local_98 + 0xc);\n      if (ppuVar2 != local_ac) {\n        *(undefined4 **)((int)piVar10 + -0xc) = local_a0;\n        *(int **)((int)piVar10 + -0x10) = local_98;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191441;\n        (*(code *)ppuVar2)();\n      }\n      param_1[5] = param_1[5] + 1;\n    }\n    iVar8 = *(int *)*param_1;\n    *(int **)((int)piVar10 + -0x10) = (int *)*param_1;\n    pcVar3 = *(code **)(iVar8 + 0xc);\n    *(undefined4 *)((int)piVar10 + -0x14) = 0x190f95;\n    (*pcVar3)();\n    ppuVar2 = *(undefined ***)(*piVar4 + 4);\n    if (ppuVar2 == local_90 + -0xc8ab8) {\n      *piVar4 = (int)(local_90 + -0x307b);\n      piVar7 = (int *)piVar4[9];\n      if (piVar7 != (int *)0x0) {\n        iVar8 = *piVar7;\n        *(int **)((int)piVar10 + -0x10) = piVar7;\n        pcVar3 = *(code **)(iVar8 + 4);\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x190fc9;\n        (*pcVar3)();\n      }\n      iVar8 = piVar4[10];\n      if (iVar8 != 0) {\n        if (*(int *)(iVar8 + 4) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 100;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915d4;\n          FUN_00069d00();\n        }\n        if (*(int *)(iVar8 + 8) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x65;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined1 **)((int)piVar10 + -0x14) = &LAB_001915f2;\n          FUN_00069d00();\n        }\n        if ((*(int *)(iVar8 + 0xc) != 0) || (*(int *)(iVar8 + 0x10) != 0)) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d215;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x2c;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915b6;\n          FUN_00069d00();\n        }\n        *(undefined4 *)((int)piVar10 + -0xc) = 0x14;\n        *(int *)((int)piVar10 + -0x10) = iVar8;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191010;\n        FUN_001e6d90();\n      }\n      *piVar4 = (int)(local_90 + -0x1717);\n      if ((int *)piVar4[2] != piVar4 + 4) {\n        *(int **)((int)piVar10 + -0x10) = (int *)piVar4[2];\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191034;\n        FUN_001e6db0();\n      }\n      *(undefined4 *)((int)piVar10 + -0xc) = 0x30;\n      *(int **)((int)piVar10 + -0x10) = piVar4;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191048;\n      FUN_001e6d90();\n      piVar4 = local_98;\n    }\n    else {\n      *(int **)((int)piVar10 + -0x10) = piVar4;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x1913d6;\n      (*(code *)ppuVar2)();\n      piVar4 = local_98;\n    }\n    local_98 = piVar4;\n    if (piVar4 == (int *)0x0) {\n      return 1;\n    }\n  } while( true );" do (compound_statement "{\n    puVar1 = (undefined4 *)*local_94;\n    puVar9 = (undefined1 *)piVar10;\n    if ((puVar1[2] != 0) && ((*(byte *)(puVar1 + 5) & 1) != 0)) {\n      local_98 = (int *)*puVar1;\n      if (piVar4[3] == 0) {\n        ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n        if (ppuVar2 == local_90 + -0xc8a2c) {\n          iVar8 = piVar4[0xb];\n          local_4c = local_a8;\n          iVar5 = -1;\n          if (iVar8 != 0) {\n            *(int *)((int)piVar10 + -0x10) = iVar8;\n            *(undefined4 *)((int)piVar10 + -0x14) = 0x1910c6;\n            local_b0 = iVar8;\n            sVar6 = strlen(*(char **)((int)piVar10 + -0x10));\n            iVar5 = sVar6 + local_b0;\n            iVar8 = local_b0;\n          }\n          *(undefined4 *)((int)piVar10 + -4) = 0;\n          *(int *)((int)piVar10 + -8) = iVar5;\n          *(int *)((int)piVar10 + -0xc) = iVar8;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1910e0;\n          FUN_00050e40();\n        }\n        else {\n          *(int **)((int)piVar10 + -0xc) = piVar4;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1914bc;\n          (*(code *)ppuVar2)();\n          piVar10 = (int *)((int)piVar10 + -4);\n        }\n        piVar7 = (int *)piVar4[2];\n        if (local_4c == local_a8) {\n          if (local_48 != 0) {\n            if (local_48 == 1) {\n              *(undefined1 *)piVar7 = (undefined1)local_44[0];\n              piVar7 = (int *)piVar4[2];\n            }\n            else {\n              *(int *)((int)piVar10 + -8) = local_48;\n              *(int **)((int)piVar10 + -0xc) = local_a8;\n              *(int **)((int)piVar10 + -0x10) = piVar7;\n              *(undefined4 *)((int)piVar10 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8));\n              piVar7 = (int *)piVar4[2];\n            }\n          }\n          piVar4[3] = local_48;\n          *(undefined1 *)((int)piVar7 + local_48) = 0;\n          iVar8 = local_44[0];\n        }\n        else {\n          if (piVar7 == piVar4 + 4) {\n            piVar4[2] = (int)local_4c;\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n          }\n          else {\n            piVar4[2] = (int)local_4c;\n            iVar8 = piVar4[4];\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n            local_4c = piVar7;\n            if (piVar7 != (int *)0x0) goto LAB_00191120;\n          }\n          local_4c = local_a8;\n          iVar8 = local_44[0];\n        }\nLAB_00191120:\n        local_44[0] = iVar8;\n        local_48 = 0;\n        *(undefined1 *)local_4c = 0;\n        if (local_4c != local_a8) {\n          *(int **)((int)piVar10 + -0x10) = local_4c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x191144;\n          FUN_001e6db0();\n        }\n      }\n      *(int *)((int)piVar10 + -4) = piVar4[2];\n      *(undefined4 *)((int)piVar10 + -8) = param_2;\n      *(int *)((int)piVar10 + -0xc) = (int)local_90 + -0xf4943;\n      *(int **)((int)piVar10 + -0x10) = local_98;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191165;\n      FUN_000653f0();\n      puVar9 = (undefined1 *)piVar10;\n    }\n    *(int ***)(puVar9 + -0x10) = local_9c;\n    *(undefined4 *)(puVar9 + -0x14) = 0x19117c;\n    FUN_0018fff0();\n    if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {\n      *(int ***)(puVar9 + -0x10) = local_9c;\n      *(undefined4 *)(puVar9 + -0x14) = 0x1911a8;\n      thunk_FUN_00190010();\n    }\n    ppuVar2 = *(undefined ***)(*piVar4 + 0x10);\n    if (ppuVar2 == local_a4) {\n      piVar10 = (int *)piVar4[9];\n      iVar8 = *piVar10;\n      *(int **)(puVar9 + -8) = piVar4;\n      *(undefined4 **)(puVar9 + -0xc) = param_1;\n      *(int **)(puVar9 + -0x10) = piVar10;\n      pcVar3 = *(code **)(iVar8 + 8);\n      *(undefined4 *)(puVar9 + -0x14) = 0x1911ca;\n      (*pcVar3)();\n    }\n    else {\n      *(undefined4 **)(puVar9 + -0xc) = param_1;\n      *(int **)(puVar9 + -0x10) = piVar4;\n      *(undefined4 *)(puVar9 + -0x14) = 0x1913ff;\n      (*(code *)ppuVar2)();\n    }\n    piVar10 = (int *)puVar9;\n    if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {\n      *(int ***)(puVar9 + -0xc) = local_9c;\n      *(int **)(puVar9 + -0x10) = &local_84;\n      *(undefined4 *)(puVar9 + -0x14) = 0x191202;\n      FUN_001900d0();\n      puVar11 = puVar9 + -4;\n      puVar1 = (undefined4 *)*local_94;\n      piVar10 = (int *)(puVar9 + -4);\n      if ((puVar1[2] != 0) && (piVar10 = (int *)(puVar9 + -4), (*(byte *)(puVar1 + 5) & 1) != 0)) {\n        local_b8 = *puVar1;\n        local_bc = local_7c / 1000;\n        local_98 = (int *)((local_7c % 1000) * 1000);\n        local_c0 = local_80 / 1000;\n        local_b0 = (local_80 % 1000) * 1000;\n        local_c4 = local_84 / 1000;\n        local_b4 = (local_84 % 1000) * 1000;\n        if (piVar4[3] == 0) {\n          ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n          if (ppuVar2 == local_90 + -0xc8a2c) {\n            iVar8 = piVar4[0xb];\n            local_c8 = local_5c;\n            iVar5 = -1;\n            local_64 = local_c8;\n            if (iVar8 != 0) {\n              *(int *)(puVar9 + -0x14) = iVar8;\n              *(undefined4 *)(puVar9 + -0x18) = 0x1912ff;\n              local_cc = iVar8;\n              sVar6 = strlen(*(char **)(puVar9 + -0x14));\n              iVar5 = sVar6 + local_cc;\n              iVar8 = local_cc;\n            }\n            puVar11 = puVar9 + -4;\n            *(undefined4 *)(puVar9 + -8) = 0;\n            *(int *)(puVar9 + -0xc) = iVar5;\n            *(int *)(puVar9 + -0x10) = iVar8;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191317;\n            FUN_00050e40();\n          }\n          else {\n            *(int **)(puVar9 + -0x10) = piVar4;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191579;\n            (*(code *)ppuVar2)();\n            local_c8 = local_5c;\n            puVar11 = puVar9 + -8;\n          }\n          piVar10 = (int *)piVar4[2];\n          if (local_64 == local_c8) {\n            if (local_60 != 0) {\n              if (local_60 == 1) {\n                *(undefined1 *)piVar10 = (undefined1)local_5c[0];\n                piVar10 = (int *)piVar4[2];\n              }\n              else {\n                *(int *)(puVar11 + -8) = local_60;\n                *(int **)(puVar11 + -0xc) = local_c8;\n                *(int **)(puVar11 + -0x10) = piVar10;\n                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;\n                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));\n                piVar10 = (int *)piVar4[2];\n              }\n            }\n            piVar4[3] = local_60;\n            *(undefined1 *)((int)piVar10 + local_60) = 0;\n            piVar10 = local_64;\n            iVar8 = local_5c[0];\n          }\n          else {\n            if (piVar10 == piVar4 + 4) {\n              piVar4[2] = (int)local_64;\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n            }\n            else {\n              piVar4[2] = (int)local_64;\n              iVar8 = piVar4[4];\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n              local_64 = piVar10;\n              if (piVar10 != (int *)0x0) goto LAB_00191357;\n            }\n            local_64 = local_c8;\n            local_c8 = local_5c;\n            piVar10 = local_c8;\n            iVar8 = local_5c[0];\n          }\nLAB_00191357:\n          local_5c[0] = iVar8;\n          local_60 = 0;\n          *(undefined1 *)piVar10 = 0;\n          if (local_64 != local_c8) {\n            *(int **)(puVar11 + -0x10) = local_64;\n            *(undefined4 *)(puVar11 + -0x14) = 0x19137b;\n            FUN_001e6db0();\n          }\n        }\n        *(int **)(puVar11 + -0xc) = local_98;\n        *(int *)(puVar11 + -0x10) = local_bc;\n        *(int *)(puVar11 + -0x14) = local_b0;\n        *(int *)(puVar11 + -0x18) = local_c0;\n        *(int *)(puVar11 + -0x1c) = local_b4;\n        *(int *)(puVar11 + -0x20) = local_c4;\n        *(int *)(puVar11 + -0x24) = piVar4[2];\n        *(undefined4 *)(puVar11 + -0x28) = param_2;\n        *(undefined ***)(puVar11 + -0x2c) = local_90 + -0x3d24b;\n        *(undefined4 *)(puVar11 + -0x30) = local_b8;\n        *(undefined4 *)(puVar11 + -0x34) = 0x1913c3;\n        FUN_000653f0();\n        piVar10 = (int *)puVar11;\n      }\n    }\n    iVar8 = *(int *)*param_1;\n    *(int **)((int)piVar10 + -0x10) = (int *)*param_1;\n    pcVar3 = *(code **)(iVar8 + 8);\n    *(undefined4 *)((int)piVar10 + -0x14) = 0x190f43;\n    (*pcVar3)();\n    param_1[5] = param_1[5] + -1;\n    *(undefined4 **)((int)piVar10 + -8) = local_a0;\n    *(int **)((int)piVar10 + -0xc) = piVar4;\n    *(undefined4 **)((int)piVar10 + -0x10) = param_1;\n                    \n    *(undefined4 *)((int)piVar10 + -0x14) = 0x190f57;\n    local_98 = (int *)FUN_00190b90();\n    if (local_98 == (int *)0x0) {\n      *(undefined4 **)((int)piVar10 + -0x10) = param_1;\n                    \n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191419;\n      local_98 = (int *)FUN_00190880();\n      if (local_98 != (int *)0x0) goto LAB_00190f68;\n    }\n    else {\nLAB_00190f68:\n      local_78[0] = 0;\n      ppuVar2 = *(undefined ***)(*local_98 + 0xc);\n      if (ppuVar2 != local_ac) {\n        *(undefined4 **)((int)piVar10 + -0xc) = local_a0;\n        *(int **)((int)piVar10 + -0x10) = local_98;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191441;\n        (*(code *)ppuVar2)();\n      }\n      param_1[5] = param_1[5] + 1;\n    }\n    iVar8 = *(int *)*param_1;\n    *(int **)((int)piVar10 + -0x10) = (int *)*param_1;\n    pcVar3 = *(code **)(iVar8 + 0xc);\n    *(undefined4 *)((int)piVar10 + -0x14) = 0x190f95;\n    (*pcVar3)();\n    ppuVar2 = *(undefined ***)(*piVar4 + 4);\n    if (ppuVar2 == local_90 + -0xc8ab8) {\n      *piVar4 = (int)(local_90 + -0x307b);\n      piVar7 = (int *)piVar4[9];\n      if (piVar7 != (int *)0x0) {\n        iVar8 = *piVar7;\n        *(int **)((int)piVar10 + -0x10) = piVar7;\n        pcVar3 = *(code **)(iVar8 + 4);\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x190fc9;\n        (*pcVar3)();\n      }\n      iVar8 = piVar4[10];\n      if (iVar8 != 0) {\n        if (*(int *)(iVar8 + 4) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 100;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915d4;\n          FUN_00069d00();\n        }\n        if (*(int *)(iVar8 + 8) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x65;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined1 **)((int)piVar10 + -0x14) = &LAB_001915f2;\n          FUN_00069d00();\n        }\n        if ((*(int *)(iVar8 + 0xc) != 0) || (*(int *)(iVar8 + 0x10) != 0)) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d215;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x2c;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915b6;\n          FUN_00069d00();\n        }\n        *(undefined4 *)((int)piVar10 + -0xc) = 0x14;\n        *(int *)((int)piVar10 + -0x10) = iVar8;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191010;\n        FUN_001e6d90();\n      }\n      *piVar4 = (int)(local_90 + -0x1717);\n      if ((int *)piVar4[2] != piVar4 + 4) {\n        *(int **)((int)piVar10 + -0x10) = (int *)piVar4[2];\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191034;\n        FUN_001e6db0();\n      }\n      *(undefined4 *)((int)piVar10 + -0xc) = 0x30;\n      *(int **)((int)piVar10 + -0x10) = piVar4;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191048;\n      FUN_001e6d90();\n      piVar4 = local_98;\n    }\n    else {\n      *(int **)((int)piVar10 + -0x10) = piVar4;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x1913d6;\n      (*(code *)ppuVar2)();\n      piVar4 = local_98;\n    }\n    local_98 = piVar4;\n    if (piVar4 == (int *)0x0) {\n      return 1;\n    }\n  }" { (expression_statement "puVar1 = (undefined4 *)*local_94;" (assignment_expression "puVar1 = (undefined4 *)*local_94" identifier = (cast_expression "(undefined4 *)*local_94" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_94" * identifier))) ;) (expression_statement "puVar9 = (undefined1 *)piVar10;" (assignment_expression "puVar9 = (undefined1 *)piVar10" identifier = (cast_expression "(undefined1 *)piVar10" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((puVar1[2] != 0) && ((*(byte *)(puVar1 + 5) & 1) != 0)) {\n      local_98 = (int *)*puVar1;\n      if (piVar4[3] == 0) {\n        ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n        if (ppuVar2 == local_90 + -0xc8a2c) {\n          iVar8 = piVar4[0xb];\n          local_4c = local_a8;\n          iVar5 = -1;\n          if (iVar8 != 0) {\n            *(int *)((int)piVar10 + -0x10) = iVar8;\n            *(undefined4 *)((int)piVar10 + -0x14) = 0x1910c6;\n            local_b0 = iVar8;\n            sVar6 = strlen(*(char **)((int)piVar10 + -0x10));\n            iVar5 = sVar6 + local_b0;\n            iVar8 = local_b0;\n          }\n          *(undefined4 *)((int)piVar10 + -4) = 0;\n          *(int *)((int)piVar10 + -8) = iVar5;\n          *(int *)((int)piVar10 + -0xc) = iVar8;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1910e0;\n          FUN_00050e40();\n        }\n        else {\n          *(int **)((int)piVar10 + -0xc) = piVar4;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1914bc;\n          (*(code *)ppuVar2)();\n          piVar10 = (int *)((int)piVar10 + -4);\n        }\n        piVar7 = (int *)piVar4[2];\n        if (local_4c == local_a8) {\n          if (local_48 != 0) {\n            if (local_48 == 1) {\n              *(undefined1 *)piVar7 = (undefined1)local_44[0];\n              piVar7 = (int *)piVar4[2];\n            }\n            else {\n              *(int *)((int)piVar10 + -8) = local_48;\n              *(int **)((int)piVar10 + -0xc) = local_a8;\n              *(int **)((int)piVar10 + -0x10) = piVar7;\n              *(undefined4 *)((int)piVar10 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8));\n              piVar7 = (int *)piVar4[2];\n            }\n          }\n          piVar4[3] = local_48;\n          *(undefined1 *)((int)piVar7 + local_48) = 0;\n          iVar8 = local_44[0];\n        }\n        else {\n          if (piVar7 == piVar4 + 4) {\n            piVar4[2] = (int)local_4c;\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n          }\n          else {\n            piVar4[2] = (int)local_4c;\n            iVar8 = piVar4[4];\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n            local_4c = piVar7;\n            if (piVar7 != (int *)0x0) goto LAB_00191120;\n          }\n          local_4c = local_a8;\n          iVar8 = local_44[0];\n        }\nLAB_00191120:\n        local_44[0] = iVar8;\n        local_48 = 0;\n        *(undefined1 *)local_4c = 0;\n        if (local_4c != local_a8) {\n          *(int **)((int)piVar10 + -0x10) = local_4c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x191144;\n          FUN_001e6db0();\n        }\n      }\n      *(int *)((int)piVar10 + -4) = piVar4[2];\n      *(undefined4 *)((int)piVar10 + -8) = param_2;\n      *(int *)((int)piVar10 + -0xc) = (int)local_90 + -0xf4943;\n      *(int **)((int)piVar10 + -0x10) = local_98;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191165;\n      FUN_000653f0();\n      puVar9 = (undefined1 *)piVar10;\n    }" if (parenthesized_expression "((puVar1[2] != 0) && ((*(byte *)(puVar1 + 5) & 1) != 0))" ( (binary_expression "(puVar1[2] != 0) && ((*(byte *)(puVar1 + 5) & 1) != 0)" (parenthesized_expression "(puVar1[2] != 0)" ( (binary_expression "puVar1[2] != 0" (subscript_expression "puVar1[2]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "((*(byte *)(puVar1 + 5) & 1) != 0)" ( (binary_expression "(*(byte *)(puVar1 + 5) & 1) != 0" (parenthesized_expression "(*(byte *)(puVar1 + 5) & 1)" ( (binary_expression "*(byte *)(puVar1 + 5) & 1" (pointer_expression "*(byte *)(puVar1 + 5)" * (cast_expression "(byte *)(puVar1 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 5)" ( (binary_expression "puVar1 + 5" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n      local_98 = (int *)*puVar1;\n      if (piVar4[3] == 0) {\n        ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n        if (ppuVar2 == local_90 + -0xc8a2c) {\n          iVar8 = piVar4[0xb];\n          local_4c = local_a8;\n          iVar5 = -1;\n          if (iVar8 != 0) {\n            *(int *)((int)piVar10 + -0x10) = iVar8;\n            *(undefined4 *)((int)piVar10 + -0x14) = 0x1910c6;\n            local_b0 = iVar8;\n            sVar6 = strlen(*(char **)((int)piVar10 + -0x10));\n            iVar5 = sVar6 + local_b0;\n            iVar8 = local_b0;\n          }\n          *(undefined4 *)((int)piVar10 + -4) = 0;\n          *(int *)((int)piVar10 + -8) = iVar5;\n          *(int *)((int)piVar10 + -0xc) = iVar8;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1910e0;\n          FUN_00050e40();\n        }\n        else {\n          *(int **)((int)piVar10 + -0xc) = piVar4;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1914bc;\n          (*(code *)ppuVar2)();\n          piVar10 = (int *)((int)piVar10 + -4);\n        }\n        piVar7 = (int *)piVar4[2];\n        if (local_4c == local_a8) {\n          if (local_48 != 0) {\n            if (local_48 == 1) {\n              *(undefined1 *)piVar7 = (undefined1)local_44[0];\n              piVar7 = (int *)piVar4[2];\n            }\n            else {\n              *(int *)((int)piVar10 + -8) = local_48;\n              *(int **)((int)piVar10 + -0xc) = local_a8;\n              *(int **)((int)piVar10 + -0x10) = piVar7;\n              *(undefined4 *)((int)piVar10 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8));\n              piVar7 = (int *)piVar4[2];\n            }\n          }\n          piVar4[3] = local_48;\n          *(undefined1 *)((int)piVar7 + local_48) = 0;\n          iVar8 = local_44[0];\n        }\n        else {\n          if (piVar7 == piVar4 + 4) {\n            piVar4[2] = (int)local_4c;\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n          }\n          else {\n            piVar4[2] = (int)local_4c;\n            iVar8 = piVar4[4];\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n            local_4c = piVar7;\n            if (piVar7 != (int *)0x0) goto LAB_00191120;\n          }\n          local_4c = local_a8;\n          iVar8 = local_44[0];\n        }\nLAB_00191120:\n        local_44[0] = iVar8;\n        local_48 = 0;\n        *(undefined1 *)local_4c = 0;\n        if (local_4c != local_a8) {\n          *(int **)((int)piVar10 + -0x10) = local_4c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x191144;\n          FUN_001e6db0();\n        }\n      }\n      *(int *)((int)piVar10 + -4) = piVar4[2];\n      *(undefined4 *)((int)piVar10 + -8) = param_2;\n      *(int *)((int)piVar10 + -0xc) = (int)local_90 + -0xf4943;\n      *(int **)((int)piVar10 + -0x10) = local_98;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191165;\n      FUN_000653f0();\n      puVar9 = (undefined1 *)piVar10;\n    }" { (expression_statement "local_98 = (int *)*puVar1;" (assignment_expression "local_98 = (int *)*puVar1" identifier = (cast_expression "(int *)*puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar1" * identifier))) ;) (if_statement "if (piVar4[3] == 0) {\n        ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n        if (ppuVar2 == local_90 + -0xc8a2c) {\n          iVar8 = piVar4[0xb];\n          local_4c = local_a8;\n          iVar5 = -1;\n          if (iVar8 != 0) {\n            *(int *)((int)piVar10 + -0x10) = iVar8;\n            *(undefined4 *)((int)piVar10 + -0x14) = 0x1910c6;\n            local_b0 = iVar8;\n            sVar6 = strlen(*(char **)((int)piVar10 + -0x10));\n            iVar5 = sVar6 + local_b0;\n            iVar8 = local_b0;\n          }\n          *(undefined4 *)((int)piVar10 + -4) = 0;\n          *(int *)((int)piVar10 + -8) = iVar5;\n          *(int *)((int)piVar10 + -0xc) = iVar8;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1910e0;\n          FUN_00050e40();\n        }\n        else {\n          *(int **)((int)piVar10 + -0xc) = piVar4;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1914bc;\n          (*(code *)ppuVar2)();\n          piVar10 = (int *)((int)piVar10 + -4);\n        }\n        piVar7 = (int *)piVar4[2];\n        if (local_4c == local_a8) {\n          if (local_48 != 0) {\n            if (local_48 == 1) {\n              *(undefined1 *)piVar7 = (undefined1)local_44[0];\n              piVar7 = (int *)piVar4[2];\n            }\n            else {\n              *(int *)((int)piVar10 + -8) = local_48;\n              *(int **)((int)piVar10 + -0xc) = local_a8;\n              *(int **)((int)piVar10 + -0x10) = piVar7;\n              *(undefined4 *)((int)piVar10 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8));\n              piVar7 = (int *)piVar4[2];\n            }\n          }\n          piVar4[3] = local_48;\n          *(undefined1 *)((int)piVar7 + local_48) = 0;\n          iVar8 = local_44[0];\n        }\n        else {\n          if (piVar7 == piVar4 + 4) {\n            piVar4[2] = (int)local_4c;\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n          }\n          else {\n            piVar4[2] = (int)local_4c;\n            iVar8 = piVar4[4];\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n            local_4c = piVar7;\n            if (piVar7 != (int *)0x0) goto LAB_00191120;\n          }\n          local_4c = local_a8;\n          iVar8 = local_44[0];\n        }\nLAB_00191120:\n        local_44[0] = iVar8;\n        local_48 = 0;\n        *(undefined1 *)local_4c = 0;\n        if (local_4c != local_a8) {\n          *(int **)((int)piVar10 + -0x10) = local_4c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x191144;\n          FUN_001e6db0();\n        }\n      }" if (parenthesized_expression "(piVar4[3] == 0)" ( (binary_expression "piVar4[3] == 0" (subscript_expression "piVar4[3]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n        if (ppuVar2 == local_90 + -0xc8a2c) {\n          iVar8 = piVar4[0xb];\n          local_4c = local_a8;\n          iVar5 = -1;\n          if (iVar8 != 0) {\n            *(int *)((int)piVar10 + -0x10) = iVar8;\n            *(undefined4 *)((int)piVar10 + -0x14) = 0x1910c6;\n            local_b0 = iVar8;\n            sVar6 = strlen(*(char **)((int)piVar10 + -0x10));\n            iVar5 = sVar6 + local_b0;\n            iVar8 = local_b0;\n          }\n          *(undefined4 *)((int)piVar10 + -4) = 0;\n          *(int *)((int)piVar10 + -8) = iVar5;\n          *(int *)((int)piVar10 + -0xc) = iVar8;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1910e0;\n          FUN_00050e40();\n        }\n        else {\n          *(int **)((int)piVar10 + -0xc) = piVar4;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1914bc;\n          (*(code *)ppuVar2)();\n          piVar10 = (int *)((int)piVar10 + -4);\n        }\n        piVar7 = (int *)piVar4[2];\n        if (local_4c == local_a8) {\n          if (local_48 != 0) {\n            if (local_48 == 1) {\n              *(undefined1 *)piVar7 = (undefined1)local_44[0];\n              piVar7 = (int *)piVar4[2];\n            }\n            else {\n              *(int *)((int)piVar10 + -8) = local_48;\n              *(int **)((int)piVar10 + -0xc) = local_a8;\n              *(int **)((int)piVar10 + -0x10) = piVar7;\n              *(undefined4 *)((int)piVar10 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8));\n              piVar7 = (int *)piVar4[2];\n            }\n          }\n          piVar4[3] = local_48;\n          *(undefined1 *)((int)piVar7 + local_48) = 0;\n          iVar8 = local_44[0];\n        }\n        else {\n          if (piVar7 == piVar4 + 4) {\n            piVar4[2] = (int)local_4c;\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n          }\n          else {\n            piVar4[2] = (int)local_4c;\n            iVar8 = piVar4[4];\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n            local_4c = piVar7;\n            if (piVar7 != (int *)0x0) goto LAB_00191120;\n          }\n          local_4c = local_a8;\n          iVar8 = local_44[0];\n        }\nLAB_00191120:\n        local_44[0] = iVar8;\n        local_48 = 0;\n        *(undefined1 *)local_4c = 0;\n        if (local_4c != local_a8) {\n          *(int **)((int)piVar10 + -0x10) = local_4c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x191144;\n          FUN_001e6db0();\n        }\n      }" { (expression_statement "ppuVar2 = *(undefined ***)(*piVar4 + 0x14);" (assignment_expression "ppuVar2 = *(undefined ***)(*piVar4 + 0x14)" identifier = (pointer_expression "*(undefined ***)(*piVar4 + 0x14)" * (cast_expression "(undefined ***)(*piVar4 + 0x14)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(*piVar4 + 0x14)" ( (binary_expression "*piVar4 + 0x14" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) ;) (if_statement "if (ppuVar2 == local_90 + -0xc8a2c) {\n          iVar8 = piVar4[0xb];\n          local_4c = local_a8;\n          iVar5 = -1;\n          if (iVar8 != 0) {\n            *(int *)((int)piVar10 + -0x10) = iVar8;\n            *(undefined4 *)((int)piVar10 + -0x14) = 0x1910c6;\n            local_b0 = iVar8;\n            sVar6 = strlen(*(char **)((int)piVar10 + -0x10));\n            iVar5 = sVar6 + local_b0;\n            iVar8 = local_b0;\n          }\n          *(undefined4 *)((int)piVar10 + -4) = 0;\n          *(int *)((int)piVar10 + -8) = iVar5;\n          *(int *)((int)piVar10 + -0xc) = iVar8;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1910e0;\n          FUN_00050e40();\n        }\n        else {\n          *(int **)((int)piVar10 + -0xc) = piVar4;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1914bc;\n          (*(code *)ppuVar2)();\n          piVar10 = (int *)((int)piVar10 + -4);\n        }" if (parenthesized_expression "(ppuVar2 == local_90 + -0xc8a2c)" ( (binary_expression "ppuVar2 == local_90 + -0xc8a2c" identifier == (binary_expression "local_90 + -0xc8a2c" identifier + number_literal)) )) (compound_statement "{\n          iVar8 = piVar4[0xb];\n          local_4c = local_a8;\n          iVar5 = -1;\n          if (iVar8 != 0) {\n            *(int *)((int)piVar10 + -0x10) = iVar8;\n            *(undefined4 *)((int)piVar10 + -0x14) = 0x1910c6;\n            local_b0 = iVar8;\n            sVar6 = strlen(*(char **)((int)piVar10 + -0x10));\n            iVar5 = sVar6 + local_b0;\n            iVar8 = local_b0;\n          }\n          *(undefined4 *)((int)piVar10 + -4) = 0;\n          *(int *)((int)piVar10 + -8) = iVar5;\n          *(int *)((int)piVar10 + -0xc) = iVar8;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1910e0;\n          FUN_00050e40();\n        }" { (expression_statement "iVar8 = piVar4[0xb];" (assignment_expression "iVar8 = piVar4[0xb]" identifier = (subscript_expression "piVar4[0xb]" identifier [ number_literal ])) ;) (expression_statement "local_4c = local_a8;" (assignment_expression "local_4c = local_a8" identifier = identifier) ;) (expression_statement "iVar5 = -1;" (assignment_expression "iVar5 = -1" identifier = number_literal) ;) (if_statement "if (iVar8 != 0) {\n            *(int *)((int)piVar10 + -0x10) = iVar8;\n            *(undefined4 *)((int)piVar10 + -0x14) = 0x1910c6;\n            local_b0 = iVar8;\n            sVar6 = strlen(*(char **)((int)piVar10 + -0x10));\n            iVar5 = sVar6 + local_b0;\n            iVar8 = local_b0;\n          }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n            *(int *)((int)piVar10 + -0x10) = iVar8;\n            *(undefined4 *)((int)piVar10 + -0x14) = 0x1910c6;\n            local_b0 = iVar8;\n            sVar6 = strlen(*(char **)((int)piVar10 + -0x10));\n            iVar5 = sVar6 + local_b0;\n            iVar8 = local_b0;\n          }" { (expression_statement "*(int *)((int)piVar10 + -0x10) = iVar8;" (assignment_expression "*(int *)((int)piVar10 + -0x10) = iVar8" (pointer_expression "*(int *)((int)piVar10 + -0x10)" * (cast_expression "(int *)((int)piVar10 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0x10)" ( (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x1910c6;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x1910c6" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0x14)" ( (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_b0 = iVar8;" (assignment_expression "local_b0 = iVar8" identifier = identifier) ;) (expression_statement "sVar6 = strlen(*(char **)((int)piVar10 + -0x10));" (assignment_expression "sVar6 = strlen(*(char **)((int)piVar10 + -0x10))" identifier = (call_expression "strlen(*(char **)((int)piVar10 + -0x10))" identifier (argument_list "(*(char **)((int)piVar10 + -0x10))" ( (pointer_expression "*(char **)((int)piVar10 + -0x10)" * (cast_expression "(char **)((int)piVar10 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar10 + -0x10)" ( (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (expression_statement "iVar5 = sVar6 + local_b0;" (assignment_expression "iVar5 = sVar6 + local_b0" identifier = (binary_expression "sVar6 + local_b0" identifier + identifier)) ;) (expression_statement "iVar8 = local_b0;" (assignment_expression "iVar8 = local_b0" identifier = identifier) ;) })) (expression_statement "*(undefined4 *)((int)piVar10 + -4) = 0;" (assignment_expression "*(undefined4 *)((int)piVar10 + -4) = 0" (pointer_expression "*(undefined4 *)((int)piVar10 + -4)" * (cast_expression "(undefined4 *)((int)piVar10 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -4)" ( (binary_expression "(int)piVar10 + -4" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)piVar10 + -8) = iVar5;" (assignment_expression "*(int *)((int)piVar10 + -8) = iVar5" (pointer_expression "*(int *)((int)piVar10 + -8)" * (cast_expression "(int *)((int)piVar10 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -8)" ( (binary_expression "(int)piVar10 + -8" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)piVar10 + -0xc) = iVar8;" (assignment_expression "*(int *)((int)piVar10 + -0xc) = iVar8" (pointer_expression "*(int *)((int)piVar10 + -0xc)" * (cast_expression "(int *)((int)piVar10 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0xc)" ( (binary_expression "(int)piVar10 + -0xc" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int ***)((int)piVar10 + -0x10) = local_9c;" (assignment_expression "*(int ***)((int)piVar10 + -0x10) = local_9c" (pointer_expression "*(int ***)((int)piVar10 + -0x10)" * (cast_expression "(int ***)((int)piVar10 + -0x10)" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar10 + -0x10)" ( (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x1910e0;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x1910e0" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0x14)" ( (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00050e40();" (call_expression "FUN_00050e40()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n          *(int **)((int)piVar10 + -0xc) = piVar4;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1914bc;\n          (*(code *)ppuVar2)();\n          piVar10 = (int *)((int)piVar10 + -4);\n        }" else (compound_statement "{\n          *(int **)((int)piVar10 + -0xc) = piVar4;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1914bc;\n          (*(code *)ppuVar2)();\n          piVar10 = (int *)((int)piVar10 + -4);\n        }" { (expression_statement "*(int **)((int)piVar10 + -0xc) = piVar4;" (assignment_expression "*(int **)((int)piVar10 + -0xc) = piVar4" (pointer_expression "*(int **)((int)piVar10 + -0xc)" * (cast_expression "(int **)((int)piVar10 + -0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar10 + -0xc)" ( (binary_expression "(int)piVar10 + -0xc" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int ***)((int)piVar10 + -0x10) = local_9c;" (assignment_expression "*(int ***)((int)piVar10 + -0x10) = local_9c" (pointer_expression "*(int ***)((int)piVar10 + -0x10)" * (cast_expression "(int ***)((int)piVar10 + -0x10)" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar10 + -0x10)" ( (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x1914bc;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x1914bc" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0x14)" ( (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*(code *)ppuVar2)();" (call_expression "(*(code *)ppuVar2)()" (parenthesized_expression "(*(code *)ppuVar2)" ( (pointer_expression "*(code *)ppuVar2" * (cast_expression "(code *)ppuVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar10 = (int *)((int)piVar10 + -4);" (assignment_expression "piVar10 = (int *)((int)piVar10 + -4)" identifier = (cast_expression "(int *)((int)piVar10 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -4)" ( (binary_expression "(int)piVar10 + -4" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }))) (expression_statement "piVar7 = (int *)piVar4[2];" (assignment_expression "piVar7 = (int *)piVar4[2]" identifier = (cast_expression "(int *)piVar4[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar4[2]" identifier [ number_literal ]))) ;) (if_statement "if (local_4c == local_a8) {\n          if (local_48 != 0) {\n            if (local_48 == 1) {\n              *(undefined1 *)piVar7 = (undefined1)local_44[0];\n              piVar7 = (int *)piVar4[2];\n            }\n            else {\n              *(int *)((int)piVar10 + -8) = local_48;\n              *(int **)((int)piVar10 + -0xc) = local_a8;\n              *(int **)((int)piVar10 + -0x10) = piVar7;\n              *(undefined4 *)((int)piVar10 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8));\n              piVar7 = (int *)piVar4[2];\n            }\n          }\n          piVar4[3] = local_48;\n          *(undefined1 *)((int)piVar7 + local_48) = 0;\n          iVar8 = local_44[0];\n        }\n        else {\n          if (piVar7 == piVar4 + 4) {\n            piVar4[2] = (int)local_4c;\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n          }\n          else {\n            piVar4[2] = (int)local_4c;\n            iVar8 = piVar4[4];\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n            local_4c = piVar7;\n            if (piVar7 != (int *)0x0) goto LAB_00191120;\n          }\n          local_4c = local_a8;\n          iVar8 = local_44[0];\n        }" if (parenthesized_expression "(local_4c == local_a8)" ( (binary_expression "local_4c == local_a8" identifier == identifier) )) (compound_statement "{\n          if (local_48 != 0) {\n            if (local_48 == 1) {\n              *(undefined1 *)piVar7 = (undefined1)local_44[0];\n              piVar7 = (int *)piVar4[2];\n            }\n            else {\n              *(int *)((int)piVar10 + -8) = local_48;\n              *(int **)((int)piVar10 + -0xc) = local_a8;\n              *(int **)((int)piVar10 + -0x10) = piVar7;\n              *(undefined4 *)((int)piVar10 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8));\n              piVar7 = (int *)piVar4[2];\n            }\n          }\n          piVar4[3] = local_48;\n          *(undefined1 *)((int)piVar7 + local_48) = 0;\n          iVar8 = local_44[0];\n        }" { (if_statement "if (local_48 != 0) {\n            if (local_48 == 1) {\n              *(undefined1 *)piVar7 = (undefined1)local_44[0];\n              piVar7 = (int *)piVar4[2];\n            }\n            else {\n              *(int *)((int)piVar10 + -8) = local_48;\n              *(int **)((int)piVar10 + -0xc) = local_a8;\n              *(int **)((int)piVar10 + -0x10) = piVar7;\n              *(undefined4 *)((int)piVar10 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8));\n              piVar7 = (int *)piVar4[2];\n            }\n          }" if (parenthesized_expression "(local_48 != 0)" ( (binary_expression "local_48 != 0" identifier != number_literal) )) (compound_statement "{\n            if (local_48 == 1) {\n              *(undefined1 *)piVar7 = (undefined1)local_44[0];\n              piVar7 = (int *)piVar4[2];\n            }\n            else {\n              *(int *)((int)piVar10 + -8) = local_48;\n              *(int **)((int)piVar10 + -0xc) = local_a8;\n              *(int **)((int)piVar10 + -0x10) = piVar7;\n              *(undefined4 *)((int)piVar10 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8));\n              piVar7 = (int *)piVar4[2];\n            }\n          }" { (if_statement "if (local_48 == 1) {\n              *(undefined1 *)piVar7 = (undefined1)local_44[0];\n              piVar7 = (int *)piVar4[2];\n            }\n            else {\n              *(int *)((int)piVar10 + -8) = local_48;\n              *(int **)((int)piVar10 + -0xc) = local_a8;\n              *(int **)((int)piVar10 + -0x10) = piVar7;\n              *(undefined4 *)((int)piVar10 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8));\n              piVar7 = (int *)piVar4[2];\n            }" if (parenthesized_expression "(local_48 == 1)" ( (binary_expression "local_48 == 1" identifier == number_literal) )) (compound_statement "{\n              *(undefined1 *)piVar7 = (undefined1)local_44[0];\n              piVar7 = (int *)piVar4[2];\n            }" { (expression_statement "*(undefined1 *)piVar7 = (undefined1)local_44[0];" (assignment_expression "*(undefined1 *)piVar7 = (undefined1)local_44[0]" (pointer_expression "*(undefined1 *)piVar7" * (cast_expression "(undefined1 *)piVar7" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(undefined1)local_44[0]" ( (type_descriptor "undefined1" type_identifier) ) (subscript_expression "local_44[0]" identifier [ number_literal ]))) ;) (expression_statement "piVar7 = (int *)piVar4[2];" (assignment_expression "piVar7 = (int *)piVar4[2]" identifier = (cast_expression "(int *)piVar4[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar4[2]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n              *(int *)((int)piVar10 + -8) = local_48;\n              *(int **)((int)piVar10 + -0xc) = local_a8;\n              *(int **)((int)piVar10 + -0x10) = piVar7;\n              *(undefined4 *)((int)piVar10 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8));\n              piVar7 = (int *)piVar4[2];\n            }" else (compound_statement "{\n              *(int *)((int)piVar10 + -8) = local_48;\n              *(int **)((int)piVar10 + -0xc) = local_a8;\n              *(int **)((int)piVar10 + -0x10) = piVar7;\n              *(undefined4 *)((int)piVar10 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8));\n              piVar7 = (int *)piVar4[2];\n            }" { (expression_statement "*(int *)((int)piVar10 + -8) = local_48;" (assignment_expression "*(int *)((int)piVar10 + -8) = local_48" (pointer_expression "*(int *)((int)piVar10 + -8)" * (cast_expression "(int *)((int)piVar10 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -8)" ( (binary_expression "(int)piVar10 + -8" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)piVar10 + -0xc) = local_a8;" (assignment_expression "*(int **)((int)piVar10 + -0xc) = local_a8" (pointer_expression "*(int **)((int)piVar10 + -0xc)" * (cast_expression "(int **)((int)piVar10 + -0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar10 + -0xc)" ( (binary_expression "(int)piVar10 + -0xc" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)piVar10 + -0x10) = piVar7;" (assignment_expression "*(int **)((int)piVar10 + -0x10) = piVar7" (pointer_expression "*(int **)((int)piVar10 + -0x10)" * (cast_expression "(int **)((int)piVar10 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar10 + -0x10)" ( (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x19146f;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x19146f" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0x14)" ( (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8));" (call_expression "memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8))" identifier (argument_list "(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8))" ( (pointer_expression "*(void **)((int)piVar10 + -0x10)" * (cast_expression "(void **)((int)piVar10 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar10 + -0x10)" ( (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(void **)((int)piVar10 + -0xc)" * (cast_expression "(void **)((int)piVar10 + -0xc)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar10 + -0xc)" ( (binary_expression "(int)piVar10 + -0xc" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (pointer_expression "*(size_t *)((int)piVar10 + -8)" * (cast_expression "(size_t *)((int)piVar10 + -8)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -8)" ( (binary_expression "(int)piVar10 + -8" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "piVar7 = (int *)piVar4[2];" (assignment_expression "piVar7 = (int *)piVar4[2]" identifier = (cast_expression "(int *)piVar4[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar4[2]" identifier [ number_literal ]))) ;) }))) })) (expression_statement "piVar4[3] = local_48;" (assignment_expression "piVar4[3] = local_48" (subscript_expression "piVar4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)piVar7 + local_48) = 0;" (assignment_expression "*(undefined1 *)((int)piVar7 + local_48) = 0" (pointer_expression "*(undefined1 *)((int)piVar7 + local_48)" * (cast_expression "(undefined1 *)((int)piVar7 + local_48)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar7 + local_48)" ( (binary_expression "(int)piVar7 + local_48" (cast_expression "(int)piVar7" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "iVar8 = local_44[0];" (assignment_expression "iVar8 = local_44[0]" identifier = (subscript_expression "local_44[0]" identifier [ number_literal ])) ;) }) (else_clause "else {\n          if (piVar7 == piVar4 + 4) {\n            piVar4[2] = (int)local_4c;\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n          }\n          else {\n            piVar4[2] = (int)local_4c;\n            iVar8 = piVar4[4];\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n            local_4c = piVar7;\n            if (piVar7 != (int *)0x0) goto LAB_00191120;\n          }\n          local_4c = local_a8;\n          iVar8 = local_44[0];\n        }" else (compound_statement "{\n          if (piVar7 == piVar4 + 4) {\n            piVar4[2] = (int)local_4c;\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n          }\n          else {\n            piVar4[2] = (int)local_4c;\n            iVar8 = piVar4[4];\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n            local_4c = piVar7;\n            if (piVar7 != (int *)0x0) goto LAB_00191120;\n          }\n          local_4c = local_a8;\n          iVar8 = local_44[0];\n        }" { (if_statement "if (piVar7 == piVar4 + 4) {\n            piVar4[2] = (int)local_4c;\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n          }\n          else {\n            piVar4[2] = (int)local_4c;\n            iVar8 = piVar4[4];\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n            local_4c = piVar7;\n            if (piVar7 != (int *)0x0) goto LAB_00191120;\n          }" if (parenthesized_expression "(piVar7 == piVar4 + 4)" ( (binary_expression "piVar7 == piVar4 + 4" identifier == (binary_expression "piVar4 + 4" identifier + number_literal)) )) (compound_statement "{\n            piVar4[2] = (int)local_4c;\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n          }" { (expression_statement "piVar4[2] = (int)local_4c;" (assignment_expression "piVar4[2] = (int)local_4c" (subscript_expression "piVar4[2]" identifier [ number_literal ]) = (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar4[3] = local_48;" (assignment_expression "piVar4[3] = local_48" (subscript_expression "piVar4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar4[4] = local_44[0];" (assignment_expression "piVar4[4] = local_44[0]" (subscript_expression "piVar4[4]" identifier [ number_literal ]) = (subscript_expression "local_44[0]" identifier [ number_literal ])) ;) }) (else_clause "else {\n            piVar4[2] = (int)local_4c;\n            iVar8 = piVar4[4];\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n            local_4c = piVar7;\n            if (piVar7 != (int *)0x0) goto LAB_00191120;\n          }" else (compound_statement "{\n            piVar4[2] = (int)local_4c;\n            iVar8 = piVar4[4];\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n            local_4c = piVar7;\n            if (piVar7 != (int *)0x0) goto LAB_00191120;\n          }" { (expression_statement "piVar4[2] = (int)local_4c;" (assignment_expression "piVar4[2] = (int)local_4c" (subscript_expression "piVar4[2]" identifier [ number_literal ]) = (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "iVar8 = piVar4[4];" (assignment_expression "iVar8 = piVar4[4]" identifier = (subscript_expression "piVar4[4]" identifier [ number_literal ])) ;) (expression_statement "piVar4[3] = local_48;" (assignment_expression "piVar4[3] = local_48" (subscript_expression "piVar4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar4[4] = local_44[0];" (assignment_expression "piVar4[4] = local_44[0]" (subscript_expression "piVar4[4]" identifier [ number_literal ]) = (subscript_expression "local_44[0]" identifier [ number_literal ])) ;) (expression_statement "local_4c = piVar7;" (assignment_expression "local_4c = piVar7" identifier = identifier) ;) (if_statement "if (piVar7 != (int *)0x0) goto LAB_00191120;" if (parenthesized_expression "(piVar7 != (int *)0x0)" ( (binary_expression "piVar7 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00191120;" goto statement_identifier ;)) }))) (expression_statement "local_4c = local_a8;" (assignment_expression "local_4c = local_a8" identifier = identifier) ;) (expression_statement "iVar8 = local_44[0];" (assignment_expression "iVar8 = local_44[0]" identifier = (subscript_expression "local_44[0]" identifier [ number_literal ])) ;) }))) (labeled_statement "LAB_00191120:\n        local_44[0] = iVar8;" statement_identifier : (expression_statement "local_44[0] = iVar8;" (assignment_expression "local_44[0] = iVar8" (subscript_expression "local_44[0]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "*(undefined1 *)local_4c = 0;" (assignment_expression "*(undefined1 *)local_4c = 0" (pointer_expression "*(undefined1 *)local_4c" * (cast_expression "(undefined1 *)local_4c" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (if_statement "if (local_4c != local_a8) {\n          *(int **)((int)piVar10 + -0x10) = local_4c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x191144;\n          FUN_001e6db0();\n        }" if (parenthesized_expression "(local_4c != local_a8)" ( (binary_expression "local_4c != local_a8" identifier != identifier) )) (compound_statement "{\n          *(int **)((int)piVar10 + -0x10) = local_4c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x191144;\n          FUN_001e6db0();\n        }" { (expression_statement "*(int **)((int)piVar10 + -0x10) = local_4c;" (assignment_expression "*(int **)((int)piVar10 + -0x10) = local_4c" (pointer_expression "*(int **)((int)piVar10 + -0x10)" * (cast_expression "(int **)((int)piVar10 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar10 + -0x10)" ( (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x191144;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x191144" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0x14)" ( (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" identifier (argument_list "()" ( ))) ;) })) })) (expression_statement "*(int *)((int)piVar10 + -4) = piVar4[2];" (assignment_expression "*(int *)((int)piVar10 + -4) = piVar4[2]" (pointer_expression "*(int *)((int)piVar10 + -4)" * (cast_expression "(int *)((int)piVar10 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -4)" ( (binary_expression "(int)piVar10 + -4" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (subscript_expression "piVar4[2]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((int)piVar10 + -8) = param_2;" (assignment_expression "*(undefined4 *)((int)piVar10 + -8) = param_2" (pointer_expression "*(undefined4 *)((int)piVar10 + -8)" * (cast_expression "(undefined4 *)((int)piVar10 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -8)" ( (binary_expression "(int)piVar10 + -8" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)((int)piVar10 + -0xc) = (int)local_90 + -0xf4943;" (assignment_expression "*(int *)((int)piVar10 + -0xc) = (int)local_90 + -0xf4943" (pointer_expression "*(int *)((int)piVar10 + -0xc)" * (cast_expression "(int *)((int)piVar10 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0xc)" ( (binary_expression "(int)piVar10 + -0xc" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_90 + -0xf4943" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(int **)((int)piVar10 + -0x10) = local_98;" (assignment_expression "*(int **)((int)piVar10 + -0x10) = local_98" (pointer_expression "*(int **)((int)piVar10 + -0x10)" * (cast_expression "(int **)((int)piVar10 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar10 + -0x10)" ( (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x191165;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x191165" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0x14)" ( (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000653f0();" (call_expression "FUN_000653f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar9 = (undefined1 *)piVar10;" (assignment_expression "puVar9 = (undefined1 *)piVar10" identifier = (cast_expression "(undefined1 *)piVar10" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "*(int ***)(puVar9 + -0x10) = local_9c;" (assignment_expression "*(int ***)(puVar9 + -0x10) = local_9c" (pointer_expression "*(int ***)(puVar9 + -0x10)" * (cast_expression "(int ***)(puVar9 + -0x10)" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar9 + -0x10)" ( (binary_expression "puVar9 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar9 + -0x14) = 0x19117c;" (assignment_expression "*(undefined4 *)(puVar9 + -0x14) = 0x19117c" (pointer_expression "*(undefined4 *)(puVar9 + -0x14)" * (cast_expression "(undefined4 *)(puVar9 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x14)" ( (binary_expression "puVar9 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0018fff0();" (call_expression "FUN_0018fff0()" identifier (argument_list "()" ( ))) ;) (if_statement "if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {\n      *(int ***)(puVar9 + -0x10) = local_9c;\n      *(undefined4 *)(puVar9 + -0x14) = 0x1911a8;\n      thunk_FUN_00190010();\n    }" if (parenthesized_expression "((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0))" ( (binary_expression "(*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)" (parenthesized_expression "(*(int *)(*local_94 + 8) != 0)" ( (binary_expression "*(int *)(*local_94 + 8) != 0" (pointer_expression "*(int *)(*local_94 + 8)" * (cast_expression "(int *)(*local_94 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_94 + 8)" ( (binary_expression "*local_94 + 8" (pointer_expression "*local_94" * identifier) + number_literal) )))) != number_literal) )) && (parenthesized_expression "(((*local_94)[0x14] & 1) != 0)" ( (binary_expression "((*local_94)[0x14] & 1) != 0" (parenthesized_expression "((*local_94)[0x14] & 1)" ( (binary_expression "(*local_94)[0x14] & 1" (subscript_expression "(*local_94)[0x14]" (parenthesized_expression "(*local_94)" ( (pointer_expression "*local_94" * identifier) )) [ number_literal ]) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n      *(int ***)(puVar9 + -0x10) = local_9c;\n      *(undefined4 *)(puVar9 + -0x14) = 0x1911a8;\n      thunk_FUN_00190010();\n    }" { (expression_statement "*(int ***)(puVar9 + -0x10) = local_9c;" (assignment_expression "*(int ***)(puVar9 + -0x10) = local_9c" (pointer_expression "*(int ***)(puVar9 + -0x10)" * (cast_expression "(int ***)(puVar9 + -0x10)" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar9 + -0x10)" ( (binary_expression "puVar9 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar9 + -0x14) = 0x1911a8;" (assignment_expression "*(undefined4 *)(puVar9 + -0x14) = 0x1911a8" (pointer_expression "*(undefined4 *)(puVar9 + -0x14)" * (cast_expression "(undefined4 *)(puVar9 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x14)" ( (binary_expression "puVar9 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "thunk_FUN_00190010();" (call_expression "thunk_FUN_00190010()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "ppuVar2 = *(undefined ***)(*piVar4 + 0x10);" (assignment_expression "ppuVar2 = *(undefined ***)(*piVar4 + 0x10)" identifier = (pointer_expression "*(undefined ***)(*piVar4 + 0x10)" * (cast_expression "(undefined ***)(*piVar4 + 0x10)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(*piVar4 + 0x10)" ( (binary_expression "*piVar4 + 0x10" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) ;) (if_statement "if (ppuVar2 == local_a4) {\n      piVar10 = (int *)piVar4[9];\n      iVar8 = *piVar10;\n      *(int **)(puVar9 + -8) = piVar4;\n      *(undefined4 **)(puVar9 + -0xc) = param_1;\n      *(int **)(puVar9 + -0x10) = piVar10;\n      pcVar3 = *(code **)(iVar8 + 8);\n      *(undefined4 *)(puVar9 + -0x14) = 0x1911ca;\n      (*pcVar3)();\n    }\n    else {\n      *(undefined4 **)(puVar9 + -0xc) = param_1;\n      *(int **)(puVar9 + -0x10) = piVar4;\n      *(undefined4 *)(puVar9 + -0x14) = 0x1913ff;\n      (*(code *)ppuVar2)();\n    }" if (parenthesized_expression "(ppuVar2 == local_a4)" ( (binary_expression "ppuVar2 == local_a4" identifier == identifier) )) (compound_statement "{\n      piVar10 = (int *)piVar4[9];\n      iVar8 = *piVar10;\n      *(int **)(puVar9 + -8) = piVar4;\n      *(undefined4 **)(puVar9 + -0xc) = param_1;\n      *(int **)(puVar9 + -0x10) = piVar10;\n      pcVar3 = *(code **)(iVar8 + 8);\n      *(undefined4 *)(puVar9 + -0x14) = 0x1911ca;\n      (*pcVar3)();\n    }" { (expression_statement "piVar10 = (int *)piVar4[9];" (assignment_expression "piVar10 = (int *)piVar4[9]" identifier = (cast_expression "(int *)piVar4[9]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar4[9]" identifier [ number_literal ]))) ;) (expression_statement "iVar8 = *piVar10;" (assignment_expression "iVar8 = *piVar10" identifier = (pointer_expression "*piVar10" * identifier)) ;) (expression_statement "*(int **)(puVar9 + -8) = piVar4;" (assignment_expression "*(int **)(puVar9 + -8) = piVar4" (pointer_expression "*(int **)(puVar9 + -8)" * (cast_expression "(int **)(puVar9 + -8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -8)" ( (binary_expression "puVar9 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)(puVar9 + -0xc) = param_1;" (assignment_expression "*(undefined4 **)(puVar9 + -0xc) = param_1" (pointer_expression "*(undefined4 **)(puVar9 + -0xc)" * (cast_expression "(undefined4 **)(puVar9 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0xc)" ( (binary_expression "puVar9 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar9 + -0x10) = piVar10;" (assignment_expression "*(int **)(puVar9 + -0x10) = piVar10" (pointer_expression "*(int **)(puVar9 + -0x10)" * (cast_expression "(int **)(puVar9 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x10)" ( (binary_expression "puVar9 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "pcVar3 = *(code **)(iVar8 + 8);" (assignment_expression "pcVar3 = *(code **)(iVar8 + 8)" identifier = (pointer_expression "*(code **)(iVar8 + 8)" * (cast_expression "(code **)(iVar8 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar9 + -0x14) = 0x1911ca;" (assignment_expression "*(undefined4 *)(puVar9 + -0x14) = 0x1911ca" (pointer_expression "*(undefined4 *)(puVar9 + -0x14)" * (cast_expression "(undefined4 *)(puVar9 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x14)" ( (binary_expression "puVar9 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar3)();" (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( ))) ;) }) (else_clause "else {\n      *(undefined4 **)(puVar9 + -0xc) = param_1;\n      *(int **)(puVar9 + -0x10) = piVar4;\n      *(undefined4 *)(puVar9 + -0x14) = 0x1913ff;\n      (*(code *)ppuVar2)();\n    }" else (compound_statement "{\n      *(undefined4 **)(puVar9 + -0xc) = param_1;\n      *(int **)(puVar9 + -0x10) = piVar4;\n      *(undefined4 *)(puVar9 + -0x14) = 0x1913ff;\n      (*(code *)ppuVar2)();\n    }" { (expression_statement "*(undefined4 **)(puVar9 + -0xc) = param_1;" (assignment_expression "*(undefined4 **)(puVar9 + -0xc) = param_1" (pointer_expression "*(undefined4 **)(puVar9 + -0xc)" * (cast_expression "(undefined4 **)(puVar9 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0xc)" ( (binary_expression "puVar9 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar9 + -0x10) = piVar4;" (assignment_expression "*(int **)(puVar9 + -0x10) = piVar4" (pointer_expression "*(int **)(puVar9 + -0x10)" * (cast_expression "(int **)(puVar9 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x10)" ( (binary_expression "puVar9 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar9 + -0x14) = 0x1913ff;" (assignment_expression "*(undefined4 *)(puVar9 + -0x14) = 0x1913ff" (pointer_expression "*(undefined4 *)(puVar9 + -0x14)" * (cast_expression "(undefined4 *)(puVar9 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x14)" ( (binary_expression "puVar9 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*(code *)ppuVar2)();" (call_expression "(*(code *)ppuVar2)()" (parenthesized_expression "(*(code *)ppuVar2)" ( (pointer_expression "*(code *)ppuVar2" * (cast_expression "(code *)ppuVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) }))) (expression_statement "piVar10 = (int *)puVar9;" (assignment_expression "piVar10 = (int *)puVar9" identifier = (cast_expression "(int *)puVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {\n      *(int ***)(puVar9 + -0xc) = local_9c;\n      *(int **)(puVar9 + -0x10) = &local_84;\n      *(undefined4 *)(puVar9 + -0x14) = 0x191202;\n      FUN_001900d0();\n      puVar11 = puVar9 + -4;\n      puVar1 = (undefined4 *)*local_94;\n      piVar10 = (int *)(puVar9 + -4);\n      if ((puVar1[2] != 0) && (piVar10 = (int *)(puVar9 + -4), (*(byte *)(puVar1 + 5) & 1) != 0)) {\n        local_b8 = *puVar1;\n        local_bc = local_7c / 1000;\n        local_98 = (int *)((local_7c % 1000) * 1000);\n        local_c0 = local_80 / 1000;\n        local_b0 = (local_80 % 1000) * 1000;\n        local_c4 = local_84 / 1000;\n        local_b4 = (local_84 % 1000) * 1000;\n        if (piVar4[3] == 0) {\n          ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n          if (ppuVar2 == local_90 + -0xc8a2c) {\n            iVar8 = piVar4[0xb];\n            local_c8 = local_5c;\n            iVar5 = -1;\n            local_64 = local_c8;\n            if (iVar8 != 0) {\n              *(int *)(puVar9 + -0x14) = iVar8;\n              *(undefined4 *)(puVar9 + -0x18) = 0x1912ff;\n              local_cc = iVar8;\n              sVar6 = strlen(*(char **)(puVar9 + -0x14));\n              iVar5 = sVar6 + local_cc;\n              iVar8 = local_cc;\n            }\n            puVar11 = puVar9 + -4;\n            *(undefined4 *)(puVar9 + -8) = 0;\n            *(int *)(puVar9 + -0xc) = iVar5;\n            *(int *)(puVar9 + -0x10) = iVar8;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191317;\n            FUN_00050e40();\n          }\n          else {\n            *(int **)(puVar9 + -0x10) = piVar4;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191579;\n            (*(code *)ppuVar2)();\n            local_c8 = local_5c;\n            puVar11 = puVar9 + -8;\n          }\n          piVar10 = (int *)piVar4[2];\n          if (local_64 == local_c8) {\n            if (local_60 != 0) {\n              if (local_60 == 1) {\n                *(undefined1 *)piVar10 = (undefined1)local_5c[0];\n                piVar10 = (int *)piVar4[2];\n              }\n              else {\n                *(int *)(puVar11 + -8) = local_60;\n                *(int **)(puVar11 + -0xc) = local_c8;\n                *(int **)(puVar11 + -0x10) = piVar10;\n                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;\n                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));\n                piVar10 = (int *)piVar4[2];\n              }\n            }\n            piVar4[3] = local_60;\n            *(undefined1 *)((int)piVar10 + local_60) = 0;\n            piVar10 = local_64;\n            iVar8 = local_5c[0];\n          }\n          else {\n            if (piVar10 == piVar4 + 4) {\n              piVar4[2] = (int)local_64;\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n            }\n            else {\n              piVar4[2] = (int)local_64;\n              iVar8 = piVar4[4];\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n              local_64 = piVar10;\n              if (piVar10 != (int *)0x0) goto LAB_00191357;\n            }\n            local_64 = local_c8;\n            local_c8 = local_5c;\n            piVar10 = local_c8;\n            iVar8 = local_5c[0];\n          }\nLAB_00191357:\n          local_5c[0] = iVar8;\n          local_60 = 0;\n          *(undefined1 *)piVar10 = 0;\n          if (local_64 != local_c8) {\n            *(int **)(puVar11 + -0x10) = local_64;\n            *(undefined4 *)(puVar11 + -0x14) = 0x19137b;\n            FUN_001e6db0();\n          }\n        }\n        *(int **)(puVar11 + -0xc) = local_98;\n        *(int *)(puVar11 + -0x10) = local_bc;\n        *(int *)(puVar11 + -0x14) = local_b0;\n        *(int *)(puVar11 + -0x18) = local_c0;\n        *(int *)(puVar11 + -0x1c) = local_b4;\n        *(int *)(puVar11 + -0x20) = local_c4;\n        *(int *)(puVar11 + -0x24) = piVar4[2];\n        *(undefined4 *)(puVar11 + -0x28) = param_2;\n        *(undefined ***)(puVar11 + -0x2c) = local_90 + -0x3d24b;\n        *(undefined4 *)(puVar11 + -0x30) = local_b8;\n        *(undefined4 *)(puVar11 + -0x34) = 0x1913c3;\n        FUN_000653f0();\n        piVar10 = (int *)puVar11;\n      }\n    }" if (parenthesized_expression "((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0))" ( (binary_expression "(*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)" (parenthesized_expression "(*(int *)(*local_94 + 8) != 0)" ( (binary_expression "*(int *)(*local_94 + 8) != 0" (pointer_expression "*(int *)(*local_94 + 8)" * (cast_expression "(int *)(*local_94 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*local_94 + 8)" ( (binary_expression "*local_94 + 8" (pointer_expression "*local_94" * identifier) + number_literal) )))) != number_literal) )) && (parenthesized_expression "(((*local_94)[0x14] & 1) != 0)" ( (binary_expression "((*local_94)[0x14] & 1) != 0" (parenthesized_expression "((*local_94)[0x14] & 1)" ( (binary_expression "(*local_94)[0x14] & 1" (subscript_expression "(*local_94)[0x14]" (parenthesized_expression "(*local_94)" ( (pointer_expression "*local_94" * identifier) )) [ number_literal ]) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n      *(int ***)(puVar9 + -0xc) = local_9c;\n      *(int **)(puVar9 + -0x10) = &local_84;\n      *(undefined4 *)(puVar9 + -0x14) = 0x191202;\n      FUN_001900d0();\n      puVar11 = puVar9 + -4;\n      puVar1 = (undefined4 *)*local_94;\n      piVar10 = (int *)(puVar9 + -4);\n      if ((puVar1[2] != 0) && (piVar10 = (int *)(puVar9 + -4), (*(byte *)(puVar1 + 5) & 1) != 0)) {\n        local_b8 = *puVar1;\n        local_bc = local_7c / 1000;\n        local_98 = (int *)((local_7c % 1000) * 1000);\n        local_c0 = local_80 / 1000;\n        local_b0 = (local_80 % 1000) * 1000;\n        local_c4 = local_84 / 1000;\n        local_b4 = (local_84 % 1000) * 1000;\n        if (piVar4[3] == 0) {\n          ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n          if (ppuVar2 == local_90 + -0xc8a2c) {\n            iVar8 = piVar4[0xb];\n            local_c8 = local_5c;\n            iVar5 = -1;\n            local_64 = local_c8;\n            if (iVar8 != 0) {\n              *(int *)(puVar9 + -0x14) = iVar8;\n              *(undefined4 *)(puVar9 + -0x18) = 0x1912ff;\n              local_cc = iVar8;\n              sVar6 = strlen(*(char **)(puVar9 + -0x14));\n              iVar5 = sVar6 + local_cc;\n              iVar8 = local_cc;\n            }\n            puVar11 = puVar9 + -4;\n            *(undefined4 *)(puVar9 + -8) = 0;\n            *(int *)(puVar9 + -0xc) = iVar5;\n            *(int *)(puVar9 + -0x10) = iVar8;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191317;\n            FUN_00050e40();\n          }\n          else {\n            *(int **)(puVar9 + -0x10) = piVar4;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191579;\n            (*(code *)ppuVar2)();\n            local_c8 = local_5c;\n            puVar11 = puVar9 + -8;\n          }\n          piVar10 = (int *)piVar4[2];\n          if (local_64 == local_c8) {\n            if (local_60 != 0) {\n              if (local_60 == 1) {\n                *(undefined1 *)piVar10 = (undefined1)local_5c[0];\n                piVar10 = (int *)piVar4[2];\n              }\n              else {\n                *(int *)(puVar11 + -8) = local_60;\n                *(int **)(puVar11 + -0xc) = local_c8;\n                *(int **)(puVar11 + -0x10) = piVar10;\n                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;\n                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));\n                piVar10 = (int *)piVar4[2];\n              }\n            }\n            piVar4[3] = local_60;\n            *(undefined1 *)((int)piVar10 + local_60) = 0;\n            piVar10 = local_64;\n            iVar8 = local_5c[0];\n          }\n          else {\n            if (piVar10 == piVar4 + 4) {\n              piVar4[2] = (int)local_64;\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n            }\n            else {\n              piVar4[2] = (int)local_64;\n              iVar8 = piVar4[4];\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n              local_64 = piVar10;\n              if (piVar10 != (int *)0x0) goto LAB_00191357;\n            }\n            local_64 = local_c8;\n            local_c8 = local_5c;\n            piVar10 = local_c8;\n            iVar8 = local_5c[0];\n          }\nLAB_00191357:\n          local_5c[0] = iVar8;\n          local_60 = 0;\n          *(undefined1 *)piVar10 = 0;\n          if (local_64 != local_c8) {\n            *(int **)(puVar11 + -0x10) = local_64;\n            *(undefined4 *)(puVar11 + -0x14) = 0x19137b;\n            FUN_001e6db0();\n          }\n        }\n        *(int **)(puVar11 + -0xc) = local_98;\n        *(int *)(puVar11 + -0x10) = local_bc;\n        *(int *)(puVar11 + -0x14) = local_b0;\n        *(int *)(puVar11 + -0x18) = local_c0;\n        *(int *)(puVar11 + -0x1c) = local_b4;\n        *(int *)(puVar11 + -0x20) = local_c4;\n        *(int *)(puVar11 + -0x24) = piVar4[2];\n        *(undefined4 *)(puVar11 + -0x28) = param_2;\n        *(undefined ***)(puVar11 + -0x2c) = local_90 + -0x3d24b;\n        *(undefined4 *)(puVar11 + -0x30) = local_b8;\n        *(undefined4 *)(puVar11 + -0x34) = 0x1913c3;\n        FUN_000653f0();\n        piVar10 = (int *)puVar11;\n      }\n    }" { (expression_statement "*(int ***)(puVar9 + -0xc) = local_9c;" (assignment_expression "*(int ***)(puVar9 + -0xc) = local_9c" (pointer_expression "*(int ***)(puVar9 + -0xc)" * (cast_expression "(int ***)(puVar9 + -0xc)" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar9 + -0xc)" ( (binary_expression "puVar9 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar9 + -0x10) = &local_84;" (assignment_expression "*(int **)(puVar9 + -0x10) = &local_84" (pointer_expression "*(int **)(puVar9 + -0x10)" * (cast_expression "(int **)(puVar9 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x10)" ( (binary_expression "puVar9 + -0x10" identifier + number_literal) )))) = (pointer_expression "&local_84" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar9 + -0x14) = 0x191202;" (assignment_expression "*(undefined4 *)(puVar9 + -0x14) = 0x191202" (pointer_expression "*(undefined4 *)(puVar9 + -0x14)" * (cast_expression "(undefined4 *)(puVar9 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x14)" ( (binary_expression "puVar9 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001900d0();" (call_expression "FUN_001900d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar11 = puVar9 + -4;" (assignment_expression "puVar11 = puVar9 + -4" identifier = (binary_expression "puVar9 + -4" identifier + number_literal)) ;) (expression_statement "puVar1 = (undefined4 *)*local_94;" (assignment_expression "puVar1 = (undefined4 *)*local_94" identifier = (cast_expression "(undefined4 *)*local_94" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*local_94" * identifier))) ;) (expression_statement "piVar10 = (int *)(puVar9 + -4);" (assignment_expression "piVar10 = (int *)(puVar9 + -4)" identifier = (cast_expression "(int *)(puVar9 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -4)" ( (binary_expression "puVar9 + -4" identifier + number_literal) )))) ;) (if_statement "if ((puVar1[2] != 0) && (piVar10 = (int *)(puVar9 + -4), (*(byte *)(puVar1 + 5) & 1) != 0)) {\n        local_b8 = *puVar1;\n        local_bc = local_7c / 1000;\n        local_98 = (int *)((local_7c % 1000) * 1000);\n        local_c0 = local_80 / 1000;\n        local_b0 = (local_80 % 1000) * 1000;\n        local_c4 = local_84 / 1000;\n        local_b4 = (local_84 % 1000) * 1000;\n        if (piVar4[3] == 0) {\n          ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n          if (ppuVar2 == local_90 + -0xc8a2c) {\n            iVar8 = piVar4[0xb];\n            local_c8 = local_5c;\n            iVar5 = -1;\n            local_64 = local_c8;\n            if (iVar8 != 0) {\n              *(int *)(puVar9 + -0x14) = iVar8;\n              *(undefined4 *)(puVar9 + -0x18) = 0x1912ff;\n              local_cc = iVar8;\n              sVar6 = strlen(*(char **)(puVar9 + -0x14));\n              iVar5 = sVar6 + local_cc;\n              iVar8 = local_cc;\n            }\n            puVar11 = puVar9 + -4;\n            *(undefined4 *)(puVar9 + -8) = 0;\n            *(int *)(puVar9 + -0xc) = iVar5;\n            *(int *)(puVar9 + -0x10) = iVar8;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191317;\n            FUN_00050e40();\n          }\n          else {\n            *(int **)(puVar9 + -0x10) = piVar4;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191579;\n            (*(code *)ppuVar2)();\n            local_c8 = local_5c;\n            puVar11 = puVar9 + -8;\n          }\n          piVar10 = (int *)piVar4[2];\n          if (local_64 == local_c8) {\n            if (local_60 != 0) {\n              if (local_60 == 1) {\n                *(undefined1 *)piVar10 = (undefined1)local_5c[0];\n                piVar10 = (int *)piVar4[2];\n              }\n              else {\n                *(int *)(puVar11 + -8) = local_60;\n                *(int **)(puVar11 + -0xc) = local_c8;\n                *(int **)(puVar11 + -0x10) = piVar10;\n                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;\n                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));\n                piVar10 = (int *)piVar4[2];\n              }\n            }\n            piVar4[3] = local_60;\n            *(undefined1 *)((int)piVar10 + local_60) = 0;\n            piVar10 = local_64;\n            iVar8 = local_5c[0];\n          }\n          else {\n            if (piVar10 == piVar4 + 4) {\n              piVar4[2] = (int)local_64;\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n            }\n            else {\n              piVar4[2] = (int)local_64;\n              iVar8 = piVar4[4];\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n              local_64 = piVar10;\n              if (piVar10 != (int *)0x0) goto LAB_00191357;\n            }\n            local_64 = local_c8;\n            local_c8 = local_5c;\n            piVar10 = local_c8;\n            iVar8 = local_5c[0];\n          }\nLAB_00191357:\n          local_5c[0] = iVar8;\n          local_60 = 0;\n          *(undefined1 *)piVar10 = 0;\n          if (local_64 != local_c8) {\n            *(int **)(puVar11 + -0x10) = local_64;\n            *(undefined4 *)(puVar11 + -0x14) = 0x19137b;\n            FUN_001e6db0();\n          }\n        }\n        *(int **)(puVar11 + -0xc) = local_98;\n        *(int *)(puVar11 + -0x10) = local_bc;\n        *(int *)(puVar11 + -0x14) = local_b0;\n        *(int *)(puVar11 + -0x18) = local_c0;\n        *(int *)(puVar11 + -0x1c) = local_b4;\n        *(int *)(puVar11 + -0x20) = local_c4;\n        *(int *)(puVar11 + -0x24) = piVar4[2];\n        *(undefined4 *)(puVar11 + -0x28) = param_2;\n        *(undefined ***)(puVar11 + -0x2c) = local_90 + -0x3d24b;\n        *(undefined4 *)(puVar11 + -0x30) = local_b8;\n        *(undefined4 *)(puVar11 + -0x34) = 0x1913c3;\n        FUN_000653f0();\n        piVar10 = (int *)puVar11;\n      }" if (parenthesized_expression "((puVar1[2] != 0) && (piVar10 = (int *)(puVar9 + -4), (*(byte *)(puVar1 + 5) & 1) != 0))" ( (binary_expression "(puVar1[2] != 0) && (piVar10 = (int *)(puVar9 + -4), (*(byte *)(puVar1 + 5) & 1) != 0)" (parenthesized_expression "(puVar1[2] != 0)" ( (binary_expression "puVar1[2] != 0" (subscript_expression "puVar1[2]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(piVar10 = (int *)(puVar9 + -4), (*(byte *)(puVar1 + 5) & 1) != 0)" ( (comma_expression "piVar10 = (int *)(puVar9 + -4), (*(byte *)(puVar1 + 5) & 1) != 0" (assignment_expression "piVar10 = (int *)(puVar9 + -4)" identifier = (cast_expression "(int *)(puVar9 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -4)" ( (binary_expression "puVar9 + -4" identifier + number_literal) )))) , (binary_expression "(*(byte *)(puVar1 + 5) & 1) != 0" (parenthesized_expression "(*(byte *)(puVar1 + 5) & 1)" ( (binary_expression "*(byte *)(puVar1 + 5) & 1" (pointer_expression "*(byte *)(puVar1 + 5)" * (cast_expression "(byte *)(puVar1 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 5)" ( (binary_expression "puVar1 + 5" identifier + number_literal) )))) & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n        local_b8 = *puVar1;\n        local_bc = local_7c / 1000;\n        local_98 = (int *)((local_7c % 1000) * 1000);\n        local_c0 = local_80 / 1000;\n        local_b0 = (local_80 % 1000) * 1000;\n        local_c4 = local_84 / 1000;\n        local_b4 = (local_84 % 1000) * 1000;\n        if (piVar4[3] == 0) {\n          ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n          if (ppuVar2 == local_90 + -0xc8a2c) {\n            iVar8 = piVar4[0xb];\n            local_c8 = local_5c;\n            iVar5 = -1;\n            local_64 = local_c8;\n            if (iVar8 != 0) {\n              *(int *)(puVar9 + -0x14) = iVar8;\n              *(undefined4 *)(puVar9 + -0x18) = 0x1912ff;\n              local_cc = iVar8;\n              sVar6 = strlen(*(char **)(puVar9 + -0x14));\n              iVar5 = sVar6 + local_cc;\n              iVar8 = local_cc;\n            }\n            puVar11 = puVar9 + -4;\n            *(undefined4 *)(puVar9 + -8) = 0;\n            *(int *)(puVar9 + -0xc) = iVar5;\n            *(int *)(puVar9 + -0x10) = iVar8;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191317;\n            FUN_00050e40();\n          }\n          else {\n            *(int **)(puVar9 + -0x10) = piVar4;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191579;\n            (*(code *)ppuVar2)();\n            local_c8 = local_5c;\n            puVar11 = puVar9 + -8;\n          }\n          piVar10 = (int *)piVar4[2];\n          if (local_64 == local_c8) {\n            if (local_60 != 0) {\n              if (local_60 == 1) {\n                *(undefined1 *)piVar10 = (undefined1)local_5c[0];\n                piVar10 = (int *)piVar4[2];\n              }\n              else {\n                *(int *)(puVar11 + -8) = local_60;\n                *(int **)(puVar11 + -0xc) = local_c8;\n                *(int **)(puVar11 + -0x10) = piVar10;\n                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;\n                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));\n                piVar10 = (int *)piVar4[2];\n              }\n            }\n            piVar4[3] = local_60;\n            *(undefined1 *)((int)piVar10 + local_60) = 0;\n            piVar10 = local_64;\n            iVar8 = local_5c[0];\n          }\n          else {\n            if (piVar10 == piVar4 + 4) {\n              piVar4[2] = (int)local_64;\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n            }\n            else {\n              piVar4[2] = (int)local_64;\n              iVar8 = piVar4[4];\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n              local_64 = piVar10;\n              if (piVar10 != (int *)0x0) goto LAB_00191357;\n            }\n            local_64 = local_c8;\n            local_c8 = local_5c;\n            piVar10 = local_c8;\n            iVar8 = local_5c[0];\n          }\nLAB_00191357:\n          local_5c[0] = iVar8;\n          local_60 = 0;\n          *(undefined1 *)piVar10 = 0;\n          if (local_64 != local_c8) {\n            *(int **)(puVar11 + -0x10) = local_64;\n            *(undefined4 *)(puVar11 + -0x14) = 0x19137b;\n            FUN_001e6db0();\n          }\n        }\n        *(int **)(puVar11 + -0xc) = local_98;\n        *(int *)(puVar11 + -0x10) = local_bc;\n        *(int *)(puVar11 + -0x14) = local_b0;\n        *(int *)(puVar11 + -0x18) = local_c0;\n        *(int *)(puVar11 + -0x1c) = local_b4;\n        *(int *)(puVar11 + -0x20) = local_c4;\n        *(int *)(puVar11 + -0x24) = piVar4[2];\n        *(undefined4 *)(puVar11 + -0x28) = param_2;\n        *(undefined ***)(puVar11 + -0x2c) = local_90 + -0x3d24b;\n        *(undefined4 *)(puVar11 + -0x30) = local_b8;\n        *(undefined4 *)(puVar11 + -0x34) = 0x1913c3;\n        FUN_000653f0();\n        piVar10 = (int *)puVar11;\n      }" { (expression_statement "local_b8 = *puVar1;" (assignment_expression "local_b8 = *puVar1" identifier = (pointer_expression "*puVar1" * identifier)) ;) (expression_statement "local_bc = local_7c / 1000;" (assignment_expression "local_bc = local_7c / 1000" identifier = (binary_expression "local_7c / 1000" identifier / number_literal)) ;) (expression_statement "local_98 = (int *)((local_7c % 1000) * 1000);" (assignment_expression "local_98 = (int *)((local_7c % 1000) * 1000)" identifier = (cast_expression "(int *)((local_7c % 1000) * 1000)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((local_7c % 1000) * 1000)" ( (binary_expression "(local_7c % 1000) * 1000" (parenthesized_expression "(local_7c % 1000)" ( (binary_expression "local_7c % 1000" identifier % number_literal) )) * number_literal) )))) ;) (expression_statement "local_c0 = local_80 / 1000;" (assignment_expression "local_c0 = local_80 / 1000" identifier = (binary_expression "local_80 / 1000" identifier / number_literal)) ;) (expression_statement "local_b0 = (local_80 % 1000) * 1000;" (assignment_expression "local_b0 = (local_80 % 1000) * 1000" identifier = (binary_expression "(local_80 % 1000) * 1000" (parenthesized_expression "(local_80 % 1000)" ( (binary_expression "local_80 % 1000" identifier % number_literal) )) * number_literal)) ;) (expression_statement "local_c4 = local_84 / 1000;" (assignment_expression "local_c4 = local_84 / 1000" identifier = (binary_expression "local_84 / 1000" identifier / number_literal)) ;) (expression_statement "local_b4 = (local_84 % 1000) * 1000;" (assignment_expression "local_b4 = (local_84 % 1000) * 1000" identifier = (binary_expression "(local_84 % 1000) * 1000" (parenthesized_expression "(local_84 % 1000)" ( (binary_expression "local_84 % 1000" identifier % number_literal) )) * number_literal)) ;) (if_statement "if (piVar4[3] == 0) {\n          ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n          if (ppuVar2 == local_90 + -0xc8a2c) {\n            iVar8 = piVar4[0xb];\n            local_c8 = local_5c;\n            iVar5 = -1;\n            local_64 = local_c8;\n            if (iVar8 != 0) {\n              *(int *)(puVar9 + -0x14) = iVar8;\n              *(undefined4 *)(puVar9 + -0x18) = 0x1912ff;\n              local_cc = iVar8;\n              sVar6 = strlen(*(char **)(puVar9 + -0x14));\n              iVar5 = sVar6 + local_cc;\n              iVar8 = local_cc;\n            }\n            puVar11 = puVar9 + -4;\n            *(undefined4 *)(puVar9 + -8) = 0;\n            *(int *)(puVar9 + -0xc) = iVar5;\n            *(int *)(puVar9 + -0x10) = iVar8;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191317;\n            FUN_00050e40();\n          }\n          else {\n            *(int **)(puVar9 + -0x10) = piVar4;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191579;\n            (*(code *)ppuVar2)();\n            local_c8 = local_5c;\n            puVar11 = puVar9 + -8;\n          }\n          piVar10 = (int *)piVar4[2];\n          if (local_64 == local_c8) {\n            if (local_60 != 0) {\n              if (local_60 == 1) {\n                *(undefined1 *)piVar10 = (undefined1)local_5c[0];\n                piVar10 = (int *)piVar4[2];\n              }\n              else {\n                *(int *)(puVar11 + -8) = local_60;\n                *(int **)(puVar11 + -0xc) = local_c8;\n                *(int **)(puVar11 + -0x10) = piVar10;\n                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;\n                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));\n                piVar10 = (int *)piVar4[2];\n              }\n            }\n            piVar4[3] = local_60;\n            *(undefined1 *)((int)piVar10 + local_60) = 0;\n            piVar10 = local_64;\n            iVar8 = local_5c[0];\n          }\n          else {\n            if (piVar10 == piVar4 + 4) {\n              piVar4[2] = (int)local_64;\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n            }\n            else {\n              piVar4[2] = (int)local_64;\n              iVar8 = piVar4[4];\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n              local_64 = piVar10;\n              if (piVar10 != (int *)0x0) goto LAB_00191357;\n            }\n            local_64 = local_c8;\n            local_c8 = local_5c;\n            piVar10 = local_c8;\n            iVar8 = local_5c[0];\n          }\nLAB_00191357:\n          local_5c[0] = iVar8;\n          local_60 = 0;\n          *(undefined1 *)piVar10 = 0;\n          if (local_64 != local_c8) {\n            *(int **)(puVar11 + -0x10) = local_64;\n            *(undefined4 *)(puVar11 + -0x14) = 0x19137b;\n            FUN_001e6db0();\n          }\n        }" if (parenthesized_expression "(piVar4[3] == 0)" ( (binary_expression "piVar4[3] == 0" (subscript_expression "piVar4[3]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n          if (ppuVar2 == local_90 + -0xc8a2c) {\n            iVar8 = piVar4[0xb];\n            local_c8 = local_5c;\n            iVar5 = -1;\n            local_64 = local_c8;\n            if (iVar8 != 0) {\n              *(int *)(puVar9 + -0x14) = iVar8;\n              *(undefined4 *)(puVar9 + -0x18) = 0x1912ff;\n              local_cc = iVar8;\n              sVar6 = strlen(*(char **)(puVar9 + -0x14));\n              iVar5 = sVar6 + local_cc;\n              iVar8 = local_cc;\n            }\n            puVar11 = puVar9 + -4;\n            *(undefined4 *)(puVar9 + -8) = 0;\n            *(int *)(puVar9 + -0xc) = iVar5;\n            *(int *)(puVar9 + -0x10) = iVar8;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191317;\n            FUN_00050e40();\n          }\n          else {\n            *(int **)(puVar9 + -0x10) = piVar4;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191579;\n            (*(code *)ppuVar2)();\n            local_c8 = local_5c;\n            puVar11 = puVar9 + -8;\n          }\n          piVar10 = (int *)piVar4[2];\n          if (local_64 == local_c8) {\n            if (local_60 != 0) {\n              if (local_60 == 1) {\n                *(undefined1 *)piVar10 = (undefined1)local_5c[0];\n                piVar10 = (int *)piVar4[2];\n              }\n              else {\n                *(int *)(puVar11 + -8) = local_60;\n                *(int **)(puVar11 + -0xc) = local_c8;\n                *(int **)(puVar11 + -0x10) = piVar10;\n                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;\n                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));\n                piVar10 = (int *)piVar4[2];\n              }\n            }\n            piVar4[3] = local_60;\n            *(undefined1 *)((int)piVar10 + local_60) = 0;\n            piVar10 = local_64;\n            iVar8 = local_5c[0];\n          }\n          else {\n            if (piVar10 == piVar4 + 4) {\n              piVar4[2] = (int)local_64;\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n            }\n            else {\n              piVar4[2] = (int)local_64;\n              iVar8 = piVar4[4];\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n              local_64 = piVar10;\n              if (piVar10 != (int *)0x0) goto LAB_00191357;\n            }\n            local_64 = local_c8;\n            local_c8 = local_5c;\n            piVar10 = local_c8;\n            iVar8 = local_5c[0];\n          }\nLAB_00191357:\n          local_5c[0] = iVar8;\n          local_60 = 0;\n          *(undefined1 *)piVar10 = 0;\n          if (local_64 != local_c8) {\n            *(int **)(puVar11 + -0x10) = local_64;\n            *(undefined4 *)(puVar11 + -0x14) = 0x19137b;\n            FUN_001e6db0();\n          }\n        }" { (expression_statement "ppuVar2 = *(undefined ***)(*piVar4 + 0x14);" (assignment_expression "ppuVar2 = *(undefined ***)(*piVar4 + 0x14)" identifier = (pointer_expression "*(undefined ***)(*piVar4 + 0x14)" * (cast_expression "(undefined ***)(*piVar4 + 0x14)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(*piVar4 + 0x14)" ( (binary_expression "*piVar4 + 0x14" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) ;) (if_statement "if (ppuVar2 == local_90 + -0xc8a2c) {\n            iVar8 = piVar4[0xb];\n            local_c8 = local_5c;\n            iVar5 = -1;\n            local_64 = local_c8;\n            if (iVar8 != 0) {\n              *(int *)(puVar9 + -0x14) = iVar8;\n              *(undefined4 *)(puVar9 + -0x18) = 0x1912ff;\n              local_cc = iVar8;\n              sVar6 = strlen(*(char **)(puVar9 + -0x14));\n              iVar5 = sVar6 + local_cc;\n              iVar8 = local_cc;\n            }\n            puVar11 = puVar9 + -4;\n            *(undefined4 *)(puVar9 + -8) = 0;\n            *(int *)(puVar9 + -0xc) = iVar5;\n            *(int *)(puVar9 + -0x10) = iVar8;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191317;\n            FUN_00050e40();\n          }\n          else {\n            *(int **)(puVar9 + -0x10) = piVar4;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191579;\n            (*(code *)ppuVar2)();\n            local_c8 = local_5c;\n            puVar11 = puVar9 + -8;\n          }" if (parenthesized_expression "(ppuVar2 == local_90 + -0xc8a2c)" ( (binary_expression "ppuVar2 == local_90 + -0xc8a2c" identifier == (binary_expression "local_90 + -0xc8a2c" identifier + number_literal)) )) (compound_statement "{\n            iVar8 = piVar4[0xb];\n            local_c8 = local_5c;\n            iVar5 = -1;\n            local_64 = local_c8;\n            if (iVar8 != 0) {\n              *(int *)(puVar9 + -0x14) = iVar8;\n              *(undefined4 *)(puVar9 + -0x18) = 0x1912ff;\n              local_cc = iVar8;\n              sVar6 = strlen(*(char **)(puVar9 + -0x14));\n              iVar5 = sVar6 + local_cc;\n              iVar8 = local_cc;\n            }\n            puVar11 = puVar9 + -4;\n            *(undefined4 *)(puVar9 + -8) = 0;\n            *(int *)(puVar9 + -0xc) = iVar5;\n            *(int *)(puVar9 + -0x10) = iVar8;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191317;\n            FUN_00050e40();\n          }" { (expression_statement "iVar8 = piVar4[0xb];" (assignment_expression "iVar8 = piVar4[0xb]" identifier = (subscript_expression "piVar4[0xb]" identifier [ number_literal ])) ;) (expression_statement "local_c8 = local_5c;" (assignment_expression "local_c8 = local_5c" identifier = identifier) ;) (expression_statement "iVar5 = -1;" (assignment_expression "iVar5 = -1" identifier = number_literal) ;) (expression_statement "local_64 = local_c8;" (assignment_expression "local_64 = local_c8" identifier = identifier) ;) (if_statement "if (iVar8 != 0) {\n              *(int *)(puVar9 + -0x14) = iVar8;\n              *(undefined4 *)(puVar9 + -0x18) = 0x1912ff;\n              local_cc = iVar8;\n              sVar6 = strlen(*(char **)(puVar9 + -0x14));\n              iVar5 = sVar6 + local_cc;\n              iVar8 = local_cc;\n            }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n              *(int *)(puVar9 + -0x14) = iVar8;\n              *(undefined4 *)(puVar9 + -0x18) = 0x1912ff;\n              local_cc = iVar8;\n              sVar6 = strlen(*(char **)(puVar9 + -0x14));\n              iVar5 = sVar6 + local_cc;\n              iVar8 = local_cc;\n            }" { (expression_statement "*(int *)(puVar9 + -0x14) = iVar8;" (assignment_expression "*(int *)(puVar9 + -0x14) = iVar8" (pointer_expression "*(int *)(puVar9 + -0x14)" * (cast_expression "(int *)(puVar9 + -0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x14)" ( (binary_expression "puVar9 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar9 + -0x18) = 0x1912ff;" (assignment_expression "*(undefined4 *)(puVar9 + -0x18) = 0x1912ff" (pointer_expression "*(undefined4 *)(puVar9 + -0x18)" * (cast_expression "(undefined4 *)(puVar9 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x18)" ( (binary_expression "puVar9 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_cc = iVar8;" (assignment_expression "local_cc = iVar8" identifier = identifier) ;) (expression_statement "sVar6 = strlen(*(char **)(puVar9 + -0x14));" (assignment_expression "sVar6 = strlen(*(char **)(puVar9 + -0x14))" identifier = (call_expression "strlen(*(char **)(puVar9 + -0x14))" identifier (argument_list "(*(char **)(puVar9 + -0x14))" ( (pointer_expression "*(char **)(puVar9 + -0x14)" * (cast_expression "(char **)(puVar9 + -0x14)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x14)" ( (binary_expression "puVar9 + -0x14" identifier + number_literal) )))) )))) ;) (expression_statement "iVar5 = sVar6 + local_cc;" (assignment_expression "iVar5 = sVar6 + local_cc" identifier = (binary_expression "sVar6 + local_cc" identifier + identifier)) ;) (expression_statement "iVar8 = local_cc;" (assignment_expression "iVar8 = local_cc" identifier = identifier) ;) })) (expression_statement "puVar11 = puVar9 + -4;" (assignment_expression "puVar11 = puVar9 + -4" identifier = (binary_expression "puVar9 + -4" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar9 + -8) = 0;" (assignment_expression "*(undefined4 *)(puVar9 + -8) = 0" (pointer_expression "*(undefined4 *)(puVar9 + -8)" * (cast_expression "(undefined4 *)(puVar9 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -8)" ( (binary_expression "puVar9 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(puVar9 + -0xc) = iVar5;" (assignment_expression "*(int *)(puVar9 + -0xc) = iVar5" (pointer_expression "*(int *)(puVar9 + -0xc)" * (cast_expression "(int *)(puVar9 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0xc)" ( (binary_expression "puVar9 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar9 + -0x10) = iVar8;" (assignment_expression "*(int *)(puVar9 + -0x10) = iVar8" (pointer_expression "*(int *)(puVar9 + -0x10)" * (cast_expression "(int *)(puVar9 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x10)" ( (binary_expression "puVar9 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int ***)(puVar9 + -0x14) = &local_64;" (assignment_expression "*(int ***)(puVar9 + -0x14) = &local_64" (pointer_expression "*(int ***)(puVar9 + -0x14)" * (cast_expression "(int ***)(puVar9 + -0x14)" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar9 + -0x14)" ( (binary_expression "puVar9 + -0x14" identifier + number_literal) )))) = (pointer_expression "&local_64" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar9 + -0x18) = 0x191317;" (assignment_expression "*(undefined4 *)(puVar9 + -0x18) = 0x191317" (pointer_expression "*(undefined4 *)(puVar9 + -0x18)" * (cast_expression "(undefined4 *)(puVar9 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x18)" ( (binary_expression "puVar9 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00050e40();" (call_expression "FUN_00050e40()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n            *(int **)(puVar9 + -0x10) = piVar4;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191579;\n            (*(code *)ppuVar2)();\n            local_c8 = local_5c;\n            puVar11 = puVar9 + -8;\n          }" else (compound_statement "{\n            *(int **)(puVar9 + -0x10) = piVar4;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191579;\n            (*(code *)ppuVar2)();\n            local_c8 = local_5c;\n            puVar11 = puVar9 + -8;\n          }" { (expression_statement "*(int **)(puVar9 + -0x10) = piVar4;" (assignment_expression "*(int **)(puVar9 + -0x10) = piVar4" (pointer_expression "*(int **)(puVar9 + -0x10)" * (cast_expression "(int **)(puVar9 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + -0x10)" ( (binary_expression "puVar9 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int ***)(puVar9 + -0x14) = &local_64;" (assignment_expression "*(int ***)(puVar9 + -0x14) = &local_64" (pointer_expression "*(int ***)(puVar9 + -0x14)" * (cast_expression "(int ***)(puVar9 + -0x14)" ( (type_descriptor "int ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar9 + -0x14)" ( (binary_expression "puVar9 + -0x14" identifier + number_literal) )))) = (pointer_expression "&local_64" & identifier)) ;) (expression_statement "*(undefined4 *)(puVar9 + -0x18) = 0x191579;" (assignment_expression "*(undefined4 *)(puVar9 + -0x18) = 0x191579" (pointer_expression "*(undefined4 *)(puVar9 + -0x18)" * (cast_expression "(undefined4 *)(puVar9 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x18)" ( (binary_expression "puVar9 + -0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*(code *)ppuVar2)();" (call_expression "(*(code *)ppuVar2)()" (parenthesized_expression "(*(code *)ppuVar2)" ( (pointer_expression "*(code *)ppuVar2" * (cast_expression "(code *)ppuVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "local_c8 = local_5c;" (assignment_expression "local_c8 = local_5c" identifier = identifier) ;) (expression_statement "puVar11 = puVar9 + -8;" (assignment_expression "puVar11 = puVar9 + -8" identifier = (binary_expression "puVar9 + -8" identifier + number_literal)) ;) }))) (expression_statement "piVar10 = (int *)piVar4[2];" (assignment_expression "piVar10 = (int *)piVar4[2]" identifier = (cast_expression "(int *)piVar4[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar4[2]" identifier [ number_literal ]))) ;) (if_statement "if (local_64 == local_c8) {\n            if (local_60 != 0) {\n              if (local_60 == 1) {\n                *(undefined1 *)piVar10 = (undefined1)local_5c[0];\n                piVar10 = (int *)piVar4[2];\n              }\n              else {\n                *(int *)(puVar11 + -8) = local_60;\n                *(int **)(puVar11 + -0xc) = local_c8;\n                *(int **)(puVar11 + -0x10) = piVar10;\n                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;\n                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));\n                piVar10 = (int *)piVar4[2];\n              }\n            }\n            piVar4[3] = local_60;\n            *(undefined1 *)((int)piVar10 + local_60) = 0;\n            piVar10 = local_64;\n            iVar8 = local_5c[0];\n          }\n          else {\n            if (piVar10 == piVar4 + 4) {\n              piVar4[2] = (int)local_64;\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n            }\n            else {\n              piVar4[2] = (int)local_64;\n              iVar8 = piVar4[4];\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n              local_64 = piVar10;\n              if (piVar10 != (int *)0x0) goto LAB_00191357;\n            }\n            local_64 = local_c8;\n            local_c8 = local_5c;\n            piVar10 = local_c8;\n            iVar8 = local_5c[0];\n          }" if (parenthesized_expression "(local_64 == local_c8)" ( (binary_expression "local_64 == local_c8" identifier == identifier) )) (compound_statement "{\n            if (local_60 != 0) {\n              if (local_60 == 1) {\n                *(undefined1 *)piVar10 = (undefined1)local_5c[0];\n                piVar10 = (int *)piVar4[2];\n              }\n              else {\n                *(int *)(puVar11 + -8) = local_60;\n                *(int **)(puVar11 + -0xc) = local_c8;\n                *(int **)(puVar11 + -0x10) = piVar10;\n                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;\n                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));\n                piVar10 = (int *)piVar4[2];\n              }\n            }\n            piVar4[3] = local_60;\n            *(undefined1 *)((int)piVar10 + local_60) = 0;\n            piVar10 = local_64;\n            iVar8 = local_5c[0];\n          }" { (if_statement "if (local_60 != 0) {\n              if (local_60 == 1) {\n                *(undefined1 *)piVar10 = (undefined1)local_5c[0];\n                piVar10 = (int *)piVar4[2];\n              }\n              else {\n                *(int *)(puVar11 + -8) = local_60;\n                *(int **)(puVar11 + -0xc) = local_c8;\n                *(int **)(puVar11 + -0x10) = piVar10;\n                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;\n                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));\n                piVar10 = (int *)piVar4[2];\n              }\n            }" if (parenthesized_expression "(local_60 != 0)" ( (binary_expression "local_60 != 0" identifier != number_literal) )) (compound_statement "{\n              if (local_60 == 1) {\n                *(undefined1 *)piVar10 = (undefined1)local_5c[0];\n                piVar10 = (int *)piVar4[2];\n              }\n              else {\n                *(int *)(puVar11 + -8) = local_60;\n                *(int **)(puVar11 + -0xc) = local_c8;\n                *(int **)(puVar11 + -0x10) = piVar10;\n                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;\n                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));\n                piVar10 = (int *)piVar4[2];\n              }\n            }" { (if_statement "if (local_60 == 1) {\n                *(undefined1 *)piVar10 = (undefined1)local_5c[0];\n                piVar10 = (int *)piVar4[2];\n              }\n              else {\n                *(int *)(puVar11 + -8) = local_60;\n                *(int **)(puVar11 + -0xc) = local_c8;\n                *(int **)(puVar11 + -0x10) = piVar10;\n                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;\n                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));\n                piVar10 = (int *)piVar4[2];\n              }" if (parenthesized_expression "(local_60 == 1)" ( (binary_expression "local_60 == 1" identifier == number_literal) )) (compound_statement "{\n                *(undefined1 *)piVar10 = (undefined1)local_5c[0];\n                piVar10 = (int *)piVar4[2];\n              }" { (expression_statement "*(undefined1 *)piVar10 = (undefined1)local_5c[0];" (assignment_expression "*(undefined1 *)piVar10 = (undefined1)local_5c[0]" (pointer_expression "*(undefined1 *)piVar10" * (cast_expression "(undefined1 *)piVar10" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(undefined1)local_5c[0]" ( (type_descriptor "undefined1" type_identifier) ) (subscript_expression "local_5c[0]" identifier [ number_literal ]))) ;) (expression_statement "piVar10 = (int *)piVar4[2];" (assignment_expression "piVar10 = (int *)piVar4[2]" identifier = (cast_expression "(int *)piVar4[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar4[2]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n                *(int *)(puVar11 + -8) = local_60;\n                *(int **)(puVar11 + -0xc) = local_c8;\n                *(int **)(puVar11 + -0x10) = piVar10;\n                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;\n                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));\n                piVar10 = (int *)piVar4[2];\n              }" else (compound_statement "{\n                *(int *)(puVar11 + -8) = local_60;\n                *(int **)(puVar11 + -0xc) = local_c8;\n                *(int **)(puVar11 + -0x10) = piVar10;\n                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;\n                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));\n                piVar10 = (int *)piVar4[2];\n              }" { (expression_statement "*(int *)(puVar11 + -8) = local_60;" (assignment_expression "*(int *)(puVar11 + -8) = local_60" (pointer_expression "*(int *)(puVar11 + -8)" * (cast_expression "(int *)(puVar11 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -8)" ( (binary_expression "puVar11 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar11 + -0xc) = local_c8;" (assignment_expression "*(int **)(puVar11 + -0xc) = local_c8" (pointer_expression "*(int **)(puVar11 + -0xc)" * (cast_expression "(int **)(puVar11 + -0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0xc)" ( (binary_expression "puVar11 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar11 + -0x10) = piVar10;" (assignment_expression "*(int **)(puVar11 + -0x10) = piVar10" (pointer_expression "*(int **)(puVar11 + -0x10)" * (cast_expression "(int **)(puVar11 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x10)" ( (binary_expression "puVar11 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x14) = 0x19154f;" (assignment_expression "*(undefined4 *)(puVar11 + -0x14) = 0x19154f" (pointer_expression "*(undefined4 *)(puVar11 + -0x14)" * (cast_expression "(undefined4 *)(puVar11 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));" (call_expression "memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8))" identifier (argument_list "(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8))" ( (pointer_expression "*(void **)(puVar11 + -0x10)" * (cast_expression "(void **)(puVar11 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x10)" ( (binary_expression "puVar11 + -0x10" identifier + number_literal) )))) , (pointer_expression "*(void **)(puVar11 + -0xc)" * (cast_expression "(void **)(puVar11 + -0xc)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0xc)" ( (binary_expression "puVar11 + -0xc" identifier + number_literal) )))) , (pointer_expression "*(size_t *)(puVar11 + -8)" * (cast_expression "(size_t *)(puVar11 + -8)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -8)" ( (binary_expression "puVar11 + -8" identifier + number_literal) )))) ))) ;) (expression_statement "piVar10 = (int *)piVar4[2];" (assignment_expression "piVar10 = (int *)piVar4[2]" identifier = (cast_expression "(int *)piVar4[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar4[2]" identifier [ number_literal ]))) ;) }))) })) (expression_statement "piVar4[3] = local_60;" (assignment_expression "piVar4[3] = local_60" (subscript_expression "piVar4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)((int)piVar10 + local_60) = 0;" (assignment_expression "*(undefined1 *)((int)piVar10 + local_60) = 0" (pointer_expression "*(undefined1 *)((int)piVar10 + local_60)" * (cast_expression "(undefined1 *)((int)piVar10 + local_60)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + local_60)" ( (binary_expression "(int)piVar10 + local_60" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "piVar10 = local_64;" (assignment_expression "piVar10 = local_64" identifier = identifier) ;) (expression_statement "iVar8 = local_5c[0];" (assignment_expression "iVar8 = local_5c[0]" identifier = (subscript_expression "local_5c[0]" identifier [ number_literal ])) ;) }) (else_clause "else {\n            if (piVar10 == piVar4 + 4) {\n              piVar4[2] = (int)local_64;\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n            }\n            else {\n              piVar4[2] = (int)local_64;\n              iVar8 = piVar4[4];\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n              local_64 = piVar10;\n              if (piVar10 != (int *)0x0) goto LAB_00191357;\n            }\n            local_64 = local_c8;\n            local_c8 = local_5c;\n            piVar10 = local_c8;\n            iVar8 = local_5c[0];\n          }" else (compound_statement "{\n            if (piVar10 == piVar4 + 4) {\n              piVar4[2] = (int)local_64;\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n            }\n            else {\n              piVar4[2] = (int)local_64;\n              iVar8 = piVar4[4];\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n              local_64 = piVar10;\n              if (piVar10 != (int *)0x0) goto LAB_00191357;\n            }\n            local_64 = local_c8;\n            local_c8 = local_5c;\n            piVar10 = local_c8;\n            iVar8 = local_5c[0];\n          }" { (if_statement "if (piVar10 == piVar4 + 4) {\n              piVar4[2] = (int)local_64;\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n            }\n            else {\n              piVar4[2] = (int)local_64;\n              iVar8 = piVar4[4];\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n              local_64 = piVar10;\n              if (piVar10 != (int *)0x0) goto LAB_00191357;\n            }" if (parenthesized_expression "(piVar10 == piVar4 + 4)" ( (binary_expression "piVar10 == piVar4 + 4" identifier == (binary_expression "piVar4 + 4" identifier + number_literal)) )) (compound_statement "{\n              piVar4[2] = (int)local_64;\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n            }" { (expression_statement "piVar4[2] = (int)local_64;" (assignment_expression "piVar4[2] = (int)local_64" (subscript_expression "piVar4[2]" identifier [ number_literal ]) = (cast_expression "(int)local_64" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar4[3] = local_60;" (assignment_expression "piVar4[3] = local_60" (subscript_expression "piVar4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar4[4] = local_5c[0];" (assignment_expression "piVar4[4] = local_5c[0]" (subscript_expression "piVar4[4]" identifier [ number_literal ]) = (subscript_expression "local_5c[0]" identifier [ number_literal ])) ;) }) (else_clause "else {\n              piVar4[2] = (int)local_64;\n              iVar8 = piVar4[4];\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n              local_64 = piVar10;\n              if (piVar10 != (int *)0x0) goto LAB_00191357;\n            }" else (compound_statement "{\n              piVar4[2] = (int)local_64;\n              iVar8 = piVar4[4];\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n              local_64 = piVar10;\n              if (piVar10 != (int *)0x0) goto LAB_00191357;\n            }" { (expression_statement "piVar4[2] = (int)local_64;" (assignment_expression "piVar4[2] = (int)local_64" (subscript_expression "piVar4[2]" identifier [ number_literal ]) = (cast_expression "(int)local_64" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "iVar8 = piVar4[4];" (assignment_expression "iVar8 = piVar4[4]" identifier = (subscript_expression "piVar4[4]" identifier [ number_literal ])) ;) (expression_statement "piVar4[3] = local_60;" (assignment_expression "piVar4[3] = local_60" (subscript_expression "piVar4[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar4[4] = local_5c[0];" (assignment_expression "piVar4[4] = local_5c[0]" (subscript_expression "piVar4[4]" identifier [ number_literal ]) = (subscript_expression "local_5c[0]" identifier [ number_literal ])) ;) (expression_statement "local_64 = piVar10;" (assignment_expression "local_64 = piVar10" identifier = identifier) ;) (if_statement "if (piVar10 != (int *)0x0) goto LAB_00191357;" if (parenthesized_expression "(piVar10 != (int *)0x0)" ( (binary_expression "piVar10 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00191357;" goto statement_identifier ;)) }))) (expression_statement "local_64 = local_c8;" (assignment_expression "local_64 = local_c8" identifier = identifier) ;) (expression_statement "local_c8 = local_5c;" (assignment_expression "local_c8 = local_5c" identifier = identifier) ;) (expression_statement "piVar10 = local_c8;" (assignment_expression "piVar10 = local_c8" identifier = identifier) ;) (expression_statement "iVar8 = local_5c[0];" (assignment_expression "iVar8 = local_5c[0]" identifier = (subscript_expression "local_5c[0]" identifier [ number_literal ])) ;) }))) (labeled_statement "LAB_00191357:\n          local_5c[0] = iVar8;" statement_identifier : (expression_statement "local_5c[0] = iVar8;" (assignment_expression "local_5c[0] = iVar8" (subscript_expression "local_5c[0]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (expression_statement "*(undefined1 *)piVar10 = 0;" (assignment_expression "*(undefined1 *)piVar10 = 0" (pointer_expression "*(undefined1 *)piVar10" * (cast_expression "(undefined1 *)piVar10" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (if_statement "if (local_64 != local_c8) {\n            *(int **)(puVar11 + -0x10) = local_64;\n            *(undefined4 *)(puVar11 + -0x14) = 0x19137b;\n            FUN_001e6db0();\n          }" if (parenthesized_expression "(local_64 != local_c8)" ( (binary_expression "local_64 != local_c8" identifier != identifier) )) (compound_statement "{\n            *(int **)(puVar11 + -0x10) = local_64;\n            *(undefined4 *)(puVar11 + -0x14) = 0x19137b;\n            FUN_001e6db0();\n          }" { (expression_statement "*(int **)(puVar11 + -0x10) = local_64;" (assignment_expression "*(int **)(puVar11 + -0x10) = local_64" (pointer_expression "*(int **)(puVar11 + -0x10)" * (cast_expression "(int **)(puVar11 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0x10)" ( (binary_expression "puVar11 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x14) = 0x19137b;" (assignment_expression "*(undefined4 *)(puVar11 + -0x14) = 0x19137b" (pointer_expression "*(undefined4 *)(puVar11 + -0x14)" * (cast_expression "(undefined4 *)(puVar11 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" identifier (argument_list "()" ( ))) ;) })) })) (expression_statement "*(int **)(puVar11 + -0xc) = local_98;" (assignment_expression "*(int **)(puVar11 + -0xc) = local_98" (pointer_expression "*(int **)(puVar11 + -0xc)" * (cast_expression "(int **)(puVar11 + -0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + -0xc)" ( (binary_expression "puVar11 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar11 + -0x10) = local_bc;" (assignment_expression "*(int *)(puVar11 + -0x10) = local_bc" (pointer_expression "*(int *)(puVar11 + -0x10)" * (cast_expression "(int *)(puVar11 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x10)" ( (binary_expression "puVar11 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar11 + -0x14) = local_b0;" (assignment_expression "*(int *)(puVar11 + -0x14) = local_b0" (pointer_expression "*(int *)(puVar11 + -0x14)" * (cast_expression "(int *)(puVar11 + -0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x14)" ( (binary_expression "puVar11 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar11 + -0x18) = local_c0;" (assignment_expression "*(int *)(puVar11 + -0x18) = local_c0" (pointer_expression "*(int *)(puVar11 + -0x18)" * (cast_expression "(int *)(puVar11 + -0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x18)" ( (binary_expression "puVar11 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar11 + -0x1c) = local_b4;" (assignment_expression "*(int *)(puVar11 + -0x1c) = local_b4" (pointer_expression "*(int *)(puVar11 + -0x1c)" * (cast_expression "(int *)(puVar11 + -0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x1c)" ( (binary_expression "puVar11 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar11 + -0x20) = local_c4;" (assignment_expression "*(int *)(puVar11 + -0x20) = local_c4" (pointer_expression "*(int *)(puVar11 + -0x20)" * (cast_expression "(int *)(puVar11 + -0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x20)" ( (binary_expression "puVar11 + -0x20" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar11 + -0x24) = piVar4[2];" (assignment_expression "*(int *)(puVar11 + -0x24) = piVar4[2]" (pointer_expression "*(int *)(puVar11 + -0x24)" * (cast_expression "(int *)(puVar11 + -0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x24)" ( (binary_expression "puVar11 + -0x24" identifier + number_literal) )))) = (subscript_expression "piVar4[2]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x28) = param_2;" (assignment_expression "*(undefined4 *)(puVar11 + -0x28) = param_2" (pointer_expression "*(undefined4 *)(puVar11 + -0x28)" * (cast_expression "(undefined4 *)(puVar11 + -0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x28)" ( (binary_expression "puVar11 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined ***)(puVar11 + -0x2c) = local_90 + -0x3d24b;" (assignment_expression "*(undefined ***)(puVar11 + -0x2c) = local_90 + -0x3d24b" (pointer_expression "*(undefined ***)(puVar11 + -0x2c)" * (cast_expression "(undefined ***)(puVar11 + -0x2c)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar11 + -0x2c)" ( (binary_expression "puVar11 + -0x2c" identifier + number_literal) )))) = (binary_expression "local_90 + -0x3d24b" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x30) = local_b8;" (assignment_expression "*(undefined4 *)(puVar11 + -0x30) = local_b8" (pointer_expression "*(undefined4 *)(puVar11 + -0x30)" * (cast_expression "(undefined4 *)(puVar11 + -0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x30)" ( (binary_expression "puVar11 + -0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar11 + -0x34) = 0x1913c3;" (assignment_expression "*(undefined4 *)(puVar11 + -0x34) = 0x1913c3" (pointer_expression "*(undefined4 *)(puVar11 + -0x34)" * (cast_expression "(undefined4 *)(puVar11 + -0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -0x34)" ( (binary_expression "puVar11 + -0x34" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000653f0();" (call_expression "FUN_000653f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar10 = (int *)puVar11;" (assignment_expression "piVar10 = (int *)puVar11" identifier = (cast_expression "(int *)puVar11" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) })) (expression_statement "iVar8 = *(int *)*param_1;" (assignment_expression "iVar8 = *(int *)*param_1" identifier = (pointer_expression "*(int *)*param_1" * (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)))) ;) (expression_statement "*(int **)((int)piVar10 + -0x10) = (int *)*param_1;" (assignment_expression "*(int **)((int)piVar10 + -0x10) = (int *)*param_1" (pointer_expression "*(int **)((int)piVar10 + -0x10)" * (cast_expression "(int **)((int)piVar10 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar10 + -0x10)" ( (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "pcVar3 = *(code **)(iVar8 + 8);" (assignment_expression "pcVar3 = *(code **)(iVar8 + 8)" identifier = (pointer_expression "*(code **)(iVar8 + 8)" * (cast_expression "(code **)(iVar8 + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x190f43;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x190f43" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0x14)" ( (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar3)();" (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "param_1[5] = param_1[5] + -1;" (assignment_expression "param_1[5] = param_1[5] + -1" (subscript_expression "param_1[5]" identifier [ number_literal ]) = (binary_expression "param_1[5] + -1" (subscript_expression "param_1[5]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "*(undefined4 **)((int)piVar10 + -8) = local_a0;" (assignment_expression "*(undefined4 **)((int)piVar10 + -8) = local_a0" (pointer_expression "*(undefined4 **)((int)piVar10 + -8)" * (cast_expression "(undefined4 **)((int)piVar10 + -8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar10 + -8)" ( (binary_expression "(int)piVar10 + -8" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)piVar10 + -0xc) = piVar4;" (assignment_expression "*(int **)((int)piVar10 + -0xc) = piVar4" (pointer_expression "*(int **)((int)piVar10 + -0xc)" * (cast_expression "(int **)((int)piVar10 + -0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar10 + -0xc)" ( (binary_expression "(int)piVar10 + -0xc" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 **)((int)piVar10 + -0x10) = param_1;" (assignment_expression "*(undefined4 **)((int)piVar10 + -0x10) = param_1" (pointer_expression "*(undefined4 **)((int)piVar10 + -0x10)" * (cast_expression "(undefined4 **)((int)piVar10 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar10 + -0x10)" ( (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x190f57;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x190f57" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0x14)" ( (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_98 = (int *)FUN_00190b90();" (assignment_expression "local_98 = (int *)FUN_00190b90()" identifier = (cast_expression "(int *)FUN_00190b90()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00190b90()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (local_98 == (int *)0x0) {\n      *(undefined4 **)((int)piVar10 + -0x10) = param_1;\n                    \n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191419;\n      local_98 = (int *)FUN_00190880();\n      if (local_98 != (int *)0x0) goto LAB_00190f68;\n    }\n    else {\nLAB_00190f68:\n      local_78[0] = 0;\n      ppuVar2 = *(undefined ***)(*local_98 + 0xc);\n      if (ppuVar2 != local_ac) {\n        *(undefined4 **)((int)piVar10 + -0xc) = local_a0;\n        *(int **)((int)piVar10 + -0x10) = local_98;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191441;\n        (*(code *)ppuVar2)();\n      }\n      param_1[5] = param_1[5] + 1;\n    }" if (parenthesized_expression "(local_98 == (int *)0x0)" ( (binary_expression "local_98 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      *(undefined4 **)((int)piVar10 + -0x10) = param_1;\n                    \n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191419;\n      local_98 = (int *)FUN_00190880();\n      if (local_98 != (int *)0x0) goto LAB_00190f68;\n    }" { (expression_statement "*(undefined4 **)((int)piVar10 + -0x10) = param_1;" (assignment_expression "*(undefined4 **)((int)piVar10 + -0x10) = param_1" (pointer_expression "*(undefined4 **)((int)piVar10 + -0x10)" * (cast_expression "(undefined4 **)((int)piVar10 + -0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar10 + -0x10)" ( (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x191419;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x191419" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0x14)" ( (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_98 = (int *)FUN_00190880();" (assignment_expression "local_98 = (int *)FUN_00190880()" identifier = (cast_expression "(int *)FUN_00190880()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00190880()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (local_98 != (int *)0x0) goto LAB_00190f68;" if (parenthesized_expression "(local_98 != (int *)0x0)" ( (binary_expression "local_98 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00190f68;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_00190f68:\n      local_78[0] = 0;\n      ppuVar2 = *(undefined ***)(*local_98 + 0xc);\n      if (ppuVar2 != local_ac) {\n        *(undefined4 **)((int)piVar10 + -0xc) = local_a0;\n        *(int **)((int)piVar10 + -0x10) = local_98;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191441;\n        (*(code *)ppuVar2)();\n      }\n      param_1[5] = param_1[5] + 1;\n    }" else (compound_statement "{\nLAB_00190f68:\n      local_78[0] = 0;\n      ppuVar2 = *(undefined ***)(*local_98 + 0xc);\n      if (ppuVar2 != local_ac) {\n        *(undefined4 **)((int)piVar10 + -0xc) = local_a0;\n        *(int **)((int)piVar10 + -0x10) = local_98;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191441;\n        (*(code *)ppuVar2)();\n      }\n      param_1[5] = param_1[5] + 1;\n    }" { (labeled_statement "LAB_00190f68:\n      local_78[0] = 0;" statement_identifier : (expression_statement "local_78[0] = 0;" (assignment_expression "local_78[0] = 0" (subscript_expression "local_78[0]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "ppuVar2 = *(undefined ***)(*local_98 + 0xc);" (assignment_expression "ppuVar2 = *(undefined ***)(*local_98 + 0xc)" identifier = (pointer_expression "*(undefined ***)(*local_98 + 0xc)" * (cast_expression "(undefined ***)(*local_98 + 0xc)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(*local_98 + 0xc)" ( (binary_expression "*local_98 + 0xc" (pointer_expression "*local_98" * identifier) + number_literal) ))))) ;) (if_statement "if (ppuVar2 != local_ac) {\n        *(undefined4 **)((int)piVar10 + -0xc) = local_a0;\n        *(int **)((int)piVar10 + -0x10) = local_98;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191441;\n        (*(code *)ppuVar2)();\n      }" if (parenthesized_expression "(ppuVar2 != local_ac)" ( (binary_expression "ppuVar2 != local_ac" identifier != identifier) )) (compound_statement "{\n        *(undefined4 **)((int)piVar10 + -0xc) = local_a0;\n        *(int **)((int)piVar10 + -0x10) = local_98;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191441;\n        (*(code *)ppuVar2)();\n      }" { (expression_statement "*(undefined4 **)((int)piVar10 + -0xc) = local_a0;" (assignment_expression "*(undefined4 **)((int)piVar10 + -0xc) = local_a0" (pointer_expression "*(undefined4 **)((int)piVar10 + -0xc)" * (cast_expression "(undefined4 **)((int)piVar10 + -0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar10 + -0xc)" ( (binary_expression "(int)piVar10 + -0xc" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)piVar10 + -0x10) = local_98;" (assignment_expression "*(int **)((int)piVar10 + -0x10) = local_98" (pointer_expression "*(int **)((int)piVar10 + -0x10)" * (cast_expression "(int **)((int)piVar10 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar10 + -0x10)" ( (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x191441;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x191441" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0x14)" ( (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*(code *)ppuVar2)();" (call_expression "(*(code *)ppuVar2)()" (parenthesized_expression "(*(code *)ppuVar2)" ( (pointer_expression "*(code *)ppuVar2" * (cast_expression "(code *)ppuVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "param_1[5] = param_1[5] + 1;" (assignment_expression "param_1[5] = param_1[5] + 1" (subscript_expression "param_1[5]" identifier [ number_literal ]) = (binary_expression "param_1[5] + 1" (subscript_expression "param_1[5]" identifier [ number_literal ]) + number_literal)) ;) }))) (expression_statement "iVar8 = *(int *)*param_1;" (assignment_expression "iVar8 = *(int *)*param_1" identifier = (pointer_expression "*(int *)*param_1" * (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier)))) ;) (expression_statement "*(int **)((int)piVar10 + -0x10) = (int *)*param_1;" (assignment_expression "*(int **)((int)piVar10 + -0x10) = (int *)*param_1" (pointer_expression "*(int **)((int)piVar10 + -0x10)" * (cast_expression "(int **)((int)piVar10 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar10 + -0x10)" ( (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "pcVar3 = *(code **)(iVar8 + 0xc);" (assignment_expression "pcVar3 = *(code **)(iVar8 + 0xc)" identifier = (pointer_expression "*(code **)(iVar8 + 0xc)" * (cast_expression "(code **)(iVar8 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 0xc)" ( (binary_expression "iVar8 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x190f95;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x190f95" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0x14)" ( (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar3)();" (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "ppuVar2 = *(undefined ***)(*piVar4 + 4);" (assignment_expression "ppuVar2 = *(undefined ***)(*piVar4 + 4)" identifier = (pointer_expression "*(undefined ***)(*piVar4 + 4)" * (cast_expression "(undefined ***)(*piVar4 + 4)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(*piVar4 + 4)" ( (binary_expression "*piVar4 + 4" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) ;) (if_statement "if (ppuVar2 == local_90 + -0xc8ab8) {\n      *piVar4 = (int)(local_90 + -0x307b);\n      piVar7 = (int *)piVar4[9];\n      if (piVar7 != (int *)0x0) {\n        iVar8 = *piVar7;\n        *(int **)((int)piVar10 + -0x10) = piVar7;\n        pcVar3 = *(code **)(iVar8 + 4);\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x190fc9;\n        (*pcVar3)();\n      }\n      iVar8 = piVar4[10];\n      if (iVar8 != 0) {\n        if (*(int *)(iVar8 + 4) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 100;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915d4;\n          FUN_00069d00();\n        }\n        if (*(int *)(iVar8 + 8) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x65;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined1 **)((int)piVar10 + -0x14) = &LAB_001915f2;\n          FUN_00069d00();\n        }\n        if ((*(int *)(iVar8 + 0xc) != 0) || (*(int *)(iVar8 + 0x10) != 0)) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d215;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x2c;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915b6;\n          FUN_00069d00();\n        }\n        *(undefined4 *)((int)piVar10 + -0xc) = 0x14;\n        *(int *)((int)piVar10 + -0x10) = iVar8;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191010;\n        FUN_001e6d90();\n      }\n      *piVar4 = (int)(local_90 + -0x1717);\n      if ((int *)piVar4[2] != piVar4 + 4) {\n        *(int **)((int)piVar10 + -0x10) = (int *)piVar4[2];\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191034;\n        FUN_001e6db0();\n      }\n      *(undefined4 *)((int)piVar10 + -0xc) = 0x30;\n      *(int **)((int)piVar10 + -0x10) = piVar4;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191048;\n      FUN_001e6d90();\n      piVar4 = local_98;\n    }\n    else {\n      *(int **)((int)piVar10 + -0x10) = piVar4;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x1913d6;\n      (*(code *)ppuVar2)();\n      piVar4 = local_98;\n    }" if (parenthesized_expression "(ppuVar2 == local_90 + -0xc8ab8)" ( (binary_expression "ppuVar2 == local_90 + -0xc8ab8" identifier == (binary_expression "local_90 + -0xc8ab8" identifier + number_literal)) )) (compound_statement "{\n      *piVar4 = (int)(local_90 + -0x307b);\n      piVar7 = (int *)piVar4[9];\n      if (piVar7 != (int *)0x0) {\n        iVar8 = *piVar7;\n        *(int **)((int)piVar10 + -0x10) = piVar7;\n        pcVar3 = *(code **)(iVar8 + 4);\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x190fc9;\n        (*pcVar3)();\n      }\n      iVar8 = piVar4[10];\n      if (iVar8 != 0) {\n        if (*(int *)(iVar8 + 4) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 100;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915d4;\n          FUN_00069d00();\n        }\n        if (*(int *)(iVar8 + 8) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x65;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined1 **)((int)piVar10 + -0x14) = &LAB_001915f2;\n          FUN_00069d00();\n        }\n        if ((*(int *)(iVar8 + 0xc) != 0) || (*(int *)(iVar8 + 0x10) != 0)) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d215;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x2c;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915b6;\n          FUN_00069d00();\n        }\n        *(undefined4 *)((int)piVar10 + -0xc) = 0x14;\n        *(int *)((int)piVar10 + -0x10) = iVar8;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191010;\n        FUN_001e6d90();\n      }\n      *piVar4 = (int)(local_90 + -0x1717);\n      if ((int *)piVar4[2] != piVar4 + 4) {\n        *(int **)((int)piVar10 + -0x10) = (int *)piVar4[2];\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191034;\n        FUN_001e6db0();\n      }\n      *(undefined4 *)((int)piVar10 + -0xc) = 0x30;\n      *(int **)((int)piVar10 + -0x10) = piVar4;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191048;\n      FUN_001e6d90();\n      piVar4 = local_98;\n    }" { (expression_statement "*piVar4 = (int)(local_90 + -0x307b);" (assignment_expression "*piVar4 = (int)(local_90 + -0x307b)" (pointer_expression "*piVar4" * identifier) = (cast_expression "(int)(local_90 + -0x307b)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_90 + -0x307b)" ( (binary_expression "local_90 + -0x307b" identifier + number_literal) )))) ;) (expression_statement "piVar7 = (int *)piVar4[9];" (assignment_expression "piVar7 = (int *)piVar4[9]" identifier = (cast_expression "(int *)piVar4[9]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar4[9]" identifier [ number_literal ]))) ;) (if_statement "if (piVar7 != (int *)0x0) {\n        iVar8 = *piVar7;\n        *(int **)((int)piVar10 + -0x10) = piVar7;\n        pcVar3 = *(code **)(iVar8 + 4);\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x190fc9;\n        (*pcVar3)();\n      }" if (parenthesized_expression "(piVar7 != (int *)0x0)" ( (binary_expression "piVar7 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar8 = *piVar7;\n        *(int **)((int)piVar10 + -0x10) = piVar7;\n        pcVar3 = *(code **)(iVar8 + 4);\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x190fc9;\n        (*pcVar3)();\n      }" { (expression_statement "iVar8 = *piVar7;" (assignment_expression "iVar8 = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;) (expression_statement "*(int **)((int)piVar10 + -0x10) = piVar7;" (assignment_expression "*(int **)((int)piVar10 + -0x10) = piVar7" (pointer_expression "*(int **)((int)piVar10 + -0x10)" * (cast_expression "(int **)((int)piVar10 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar10 + -0x10)" ( (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar3 = *(code **)(iVar8 + 4);" (assignment_expression "pcVar3 = *(code **)(iVar8 + 4)" identifier = (pointer_expression "*(code **)(iVar8 + 4)" * (cast_expression "(code **)(iVar8 + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 4)" ( (binary_expression "iVar8 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x190fc9;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x190fc9" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0x14)" ( (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar3)();" (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "()" ( ))) ;) })) (expression_statement "iVar8 = piVar4[10];" (assignment_expression "iVar8 = piVar4[10]" identifier = (subscript_expression "piVar4[10]" identifier [ number_literal ])) ;) (if_statement "if (iVar8 != 0) {\n        if (*(int *)(iVar8 + 4) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 100;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915d4;\n          FUN_00069d00();\n        }\n        if (*(int *)(iVar8 + 8) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x65;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined1 **)((int)piVar10 + -0x14) = &LAB_001915f2;\n          FUN_00069d00();\n        }\n        if ((*(int *)(iVar8 + 0xc) != 0) || (*(int *)(iVar8 + 0x10) != 0)) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d215;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x2c;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915b6;\n          FUN_00069d00();\n        }\n        *(undefined4 *)((int)piVar10 + -0xc) = 0x14;\n        *(int *)((int)piVar10 + -0x10) = iVar8;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191010;\n        FUN_001e6d90();\n      }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n        if (*(int *)(iVar8 + 4) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 100;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915d4;\n          FUN_00069d00();\n        }\n        if (*(int *)(iVar8 + 8) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x65;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined1 **)((int)piVar10 + -0x14) = &LAB_001915f2;\n          FUN_00069d00();\n        }\n        if ((*(int *)(iVar8 + 0xc) != 0) || (*(int *)(iVar8 + 0x10) != 0)) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d215;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x2c;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915b6;\n          FUN_00069d00();\n        }\n        *(undefined4 *)((int)piVar10 + -0xc) = 0x14;\n        *(int *)((int)piVar10 + -0x10) = iVar8;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191010;\n        FUN_001e6d90();\n      }" { (if_statement "if (*(int *)(iVar8 + 4) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 100;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915d4;\n          FUN_00069d00();\n        }" if (parenthesized_expression "(*(int *)(iVar8 + 4) != 0)" ( (binary_expression "*(int *)(iVar8 + 4) != 0" (pointer_expression "*(int *)(iVar8 + 4)" * (cast_expression "(int *)(iVar8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 4)" ( (binary_expression "iVar8 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 100;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915d4;\n          FUN_00069d00();\n        }" { (expression_statement "*(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;" (assignment_expression "*(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e" (pointer_expression "*(undefined ***)((int)piVar10 + -8)" * (cast_expression "(undefined ***)((int)piVar10 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar10 + -8)" ( (binary_expression "(int)piVar10 + -8" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_90 + -0x3d22e" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar10 + -0xc) = 100;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0xc) = 100" (pointer_expression "*(undefined4 *)((int)piVar10 + -0xc)" * (cast_expression "(undefined4 *)((int)piVar10 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0xc)" ( (binary_expression "(int)piVar10 + -0xc" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;" (assignment_expression "*(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43" (pointer_expression "*(int *)((int)piVar10 + -0x10)" * (cast_expression "(int *)((int)piVar10 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0x10)" ( (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_90 + -0x10ea43" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x1915d4;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x1915d4" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0x14)" ( (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00069d00();" (call_expression "FUN_00069d00()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (*(int *)(iVar8 + 8) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x65;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined1 **)((int)piVar10 + -0x14) = &LAB_001915f2;\n          FUN_00069d00();\n        }" if (parenthesized_expression "(*(int *)(iVar8 + 8) != 0)" ( (binary_expression "*(int *)(iVar8 + 8) != 0" (pointer_expression "*(int *)(iVar8 + 8)" * (cast_expression "(int *)(iVar8 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 8)" ( (binary_expression "iVar8 + 8" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x65;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined1 **)((int)piVar10 + -0x14) = &LAB_001915f2;\n          FUN_00069d00();\n        }" { (expression_statement "*(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;" (assignment_expression "*(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e" (pointer_expression "*(undefined ***)((int)piVar10 + -8)" * (cast_expression "(undefined ***)((int)piVar10 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar10 + -8)" ( (binary_expression "(int)piVar10 + -8" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_90 + -0x3d22e" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar10 + -0xc) = 0x65;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0xc) = 0x65" (pointer_expression "*(undefined4 *)((int)piVar10 + -0xc)" * (cast_expression "(undefined4 *)((int)piVar10 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0xc)" ( (binary_expression "(int)piVar10 + -0xc" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;" (assignment_expression "*(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43" (pointer_expression "*(int *)((int)piVar10 + -0x10)" * (cast_expression "(int *)((int)piVar10 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0x10)" ( (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_90 + -0x10ea43" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined1 **)((int)piVar10 + -0x14) = &LAB_001915f2;" (assignment_expression "*(undefined1 **)((int)piVar10 + -0x14) = &LAB_001915f2" (pointer_expression "*(undefined1 **)((int)piVar10 + -0x14)" * (cast_expression "(undefined1 **)((int)piVar10 + -0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar10 + -0x14)" ( (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&LAB_001915f2" & identifier)) ;) (expression_statement "FUN_00069d00();" (call_expression "FUN_00069d00()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if ((*(int *)(iVar8 + 0xc) != 0) || (*(int *)(iVar8 + 0x10) != 0)) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d215;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x2c;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915b6;\n          FUN_00069d00();\n        }" if (parenthesized_expression "((*(int *)(iVar8 + 0xc) != 0) || (*(int *)(iVar8 + 0x10) != 0))" ( (binary_expression "(*(int *)(iVar8 + 0xc) != 0) || (*(int *)(iVar8 + 0x10) != 0)" (parenthesized_expression "(*(int *)(iVar8 + 0xc) != 0)" ( (binary_expression "*(int *)(iVar8 + 0xc) != 0" (pointer_expression "*(int *)(iVar8 + 0xc)" * (cast_expression "(int *)(iVar8 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0xc)" ( (binary_expression "iVar8 + 0xc" identifier + number_literal) )))) != number_literal) )) || (parenthesized_expression "(*(int *)(iVar8 + 0x10) != 0)" ( (binary_expression "*(int *)(iVar8 + 0x10) != 0" (pointer_expression "*(int *)(iVar8 + 0x10)" * (cast_expression "(int *)(iVar8 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x10)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d215;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x2c;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915b6;\n          FUN_00069d00();\n        }" { (expression_statement "*(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d215;" (assignment_expression "*(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d215" (pointer_expression "*(undefined ***)((int)piVar10 + -8)" * (cast_expression "(undefined ***)((int)piVar10 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar10 + -8)" ( (binary_expression "(int)piVar10 + -8" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "local_90 + -0x3d215" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar10 + -0xc) = 0x2c;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0xc) = 0x2c" (pointer_expression "*(undefined4 *)((int)piVar10 + -0xc)" * (cast_expression "(undefined4 *)((int)piVar10 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0xc)" ( (binary_expression "(int)piVar10 + -0xc" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;" (assignment_expression "*(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43" (pointer_expression "*(int *)((int)piVar10 + -0x10)" * (cast_expression "(int *)((int)piVar10 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0x10)" ( (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "(int)local_90 + -0x10ea43" (cast_expression "(int)local_90" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x1915b6;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x1915b6" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0x14)" ( (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00069d00();" (call_expression "FUN_00069d00()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*(undefined4 *)((int)piVar10 + -0xc) = 0x14;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0xc) = 0x14" (pointer_expression "*(undefined4 *)((int)piVar10 + -0xc)" * (cast_expression "(undefined4 *)((int)piVar10 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0xc)" ( (binary_expression "(int)piVar10 + -0xc" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)piVar10 + -0x10) = iVar8;" (assignment_expression "*(int *)((int)piVar10 + -0x10) = iVar8" (pointer_expression "*(int *)((int)piVar10 + -0x10)" * (cast_expression "(int *)((int)piVar10 + -0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0x10)" ( (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x191010;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x191010" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0x14)" ( (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001e6d90();" (call_expression "FUN_001e6d90()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*piVar4 = (int)(local_90 + -0x1717);" (assignment_expression "*piVar4 = (int)(local_90 + -0x1717)" (pointer_expression "*piVar4" * identifier) = (cast_expression "(int)(local_90 + -0x1717)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_90 + -0x1717)" ( (binary_expression "local_90 + -0x1717" identifier + number_literal) )))) ;) (if_statement "if ((int *)piVar4[2] != piVar4 + 4) {\n        *(int **)((int)piVar10 + -0x10) = (int *)piVar4[2];\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191034;\n        FUN_001e6db0();\n      }" if (parenthesized_expression "((int *)piVar4[2] != piVar4 + 4)" ( (binary_expression "(int *)piVar4[2] != piVar4 + 4" (cast_expression "(int *)piVar4[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar4[2]" identifier [ number_literal ])) != (binary_expression "piVar4 + 4" identifier + number_literal)) )) (compound_statement "{\n        *(int **)((int)piVar10 + -0x10) = (int *)piVar4[2];\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191034;\n        FUN_001e6db0();\n      }" { (expression_statement "*(int **)((int)piVar10 + -0x10) = (int *)piVar4[2];" (assignment_expression "*(int **)((int)piVar10 + -0x10) = (int *)piVar4[2]" (pointer_expression "*(int **)((int)piVar10 + -0x10)" * (cast_expression "(int **)((int)piVar10 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar10 + -0x10)" ( (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(int *)piVar4[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar4[2]" identifier [ number_literal ]))) ;) (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x191034;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x191034" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0x14)" ( (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*(undefined4 *)((int)piVar10 + -0xc) = 0x30;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0xc) = 0x30" (pointer_expression "*(undefined4 *)((int)piVar10 + -0xc)" * (cast_expression "(undefined4 *)((int)piVar10 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0xc)" ( (binary_expression "(int)piVar10 + -0xc" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int **)((int)piVar10 + -0x10) = piVar4;" (assignment_expression "*(int **)((int)piVar10 + -0x10) = piVar4" (pointer_expression "*(int **)((int)piVar10 + -0x10)" * (cast_expression "(int **)((int)piVar10 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar10 + -0x10)" ( (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x191048;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x191048" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0x14)" ( (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_001e6d90();" (call_expression "FUN_001e6d90()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar4 = local_98;" (assignment_expression "piVar4 = local_98" identifier = identifier) ;) }) (else_clause "else {\n      *(int **)((int)piVar10 + -0x10) = piVar4;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x1913d6;\n      (*(code *)ppuVar2)();\n      piVar4 = local_98;\n    }" else (compound_statement "{\n      *(int **)((int)piVar10 + -0x10) = piVar4;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x1913d6;\n      (*(code *)ppuVar2)();\n      piVar4 = local_98;\n    }" { (expression_statement "*(int **)((int)piVar10 + -0x10) = piVar4;" (assignment_expression "*(int **)((int)piVar10 + -0x10) = piVar4" (pointer_expression "*(int **)((int)piVar10 + -0x10)" * (cast_expression "(int **)((int)piVar10 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar10 + -0x10)" ( (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x1913d6;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x1913d6" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar10 + -0x14)" ( (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "(*(code *)ppuVar2)();" (call_expression "(*(code *)ppuVar2)()" (parenthesized_expression "(*(code *)ppuVar2)" ( (pointer_expression "*(code *)ppuVar2" * (cast_expression "(code *)ppuVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar4 = local_98;" (assignment_expression "piVar4 = local_98" identifier = identifier) ;) }))) (expression_statement "local_98 = piVar4;" (assignment_expression "local_98 = piVar4" identifier = identifier) ;) (if_statement "if (piVar4 == (int *)0x0) {\n      return 1;\n    }" if (parenthesized_expression "(piVar4 == (int *)0x0)" ( (binary_expression "piVar4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) + LIT) ))))) )) (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) + LIT) ))))) )) (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) ))) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) != IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))))) )) (argument_list ( IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) + LIT) ))))) )) (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) && (parenthesized_expression ( (binary_expression (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 IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }))) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) != LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression * IDENT) )) [ LIT ]) & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * 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) ;) (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) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) }) (else_clause else (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) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) != LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression * IDENT) )) [ LIT ]) & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_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 ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression (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 IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT / LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT % LIT) )) * LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT / LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT % LIT) )) * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT / LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT % LIT) )) * LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (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) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_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 ( ))) ;) }) (else_clause else (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 * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }) (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) ;) (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) ;) (expression_statement (assignment_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 ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }))) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) })) (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_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 ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) })) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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 * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (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 * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return LIT ;) })) }) while (parenthesized_expression ( BOOL )) ;) })))
(function_definition "undefined4 FUN_00190e80(undefined4 *param_1,undefined4 param_2)\n\n{\n  undefined4 *puVar1;\n  undefined **ppuVar2;\n  code *pcVar3;\n  int *piVar4;\n  int iVar5;\n  size_t sVar6;\n  int *piVar7;\n  int iVar8;\n  undefined1 *puVar9;\n  int *piVar10;\n  undefined1 *puVar11;\n  int local_cc;\n  int *local_c8;\n  int local_c4;\n  int local_c0;\n  int local_bc;\n  undefined4 local_b8;\n  int local_b4;\n  int local_b0;\n  undefined **local_ac;\n  int *local_a8;\n  undefined **local_a4;\n  undefined4 *local_a0;\n  int **local_9c;\n  int *local_98;\n  undefined **local_94;\n  undefined **local_90;\n  int local_84;\n  int local_80;\n  int local_7c;\n  undefined4 local_78 [5];\n  int *local_64;\n  int local_60;\n  int local_5c [4];\n  int *local_4c;\n  int local_48;\n  int local_44 [13];\n  \n  local_90 = &__DT_PLTGOT;\n  local_78[0] = 0;\n  (**(code **)(*(int *)*param_1 + 8))((int *)*param_1);\n                    \n  piVar4 = (int *)FUN_001908c0(param_1,param_2);\n  if (piVar4 == (int *)0x0) {\n    (**(code **)(*(int *)*param_1 + 0xc))((int *)*param_1);\n    return 0;\n  }\n  local_a0 = local_78;\n  local_ac = local_90 + -0xc8b40;\n  if (*(undefined ***)(*piVar4 + 0xc) != local_ac) {\n                    \n    (*(code *)*(undefined ***)(*piVar4 + 0xc))(piVar4,local_a0);\n  }\n  piVar10 = &local_cc;\n  param_1[5] = param_1[5] + 1;\n  (**(code **)(*(int *)*param_1 + 0xc))((int *)*param_1);\n  local_94 = local_90 + 0xde;\n  local_a4 = local_90 + -0xc8b3c;\n  local_a8 = local_44;\n  local_9c = &local_4c;\n  do {\n    puVar1 = (undefined4 *)*local_94;\n    puVar9 = (undefined1 *)piVar10;\n    if ((puVar1[2] != 0) && ((*(byte *)(puVar1 + 5) & 1) != 0)) {\n      local_98 = (int *)*puVar1;\n      if (piVar4[3] == 0) {\n        ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n        if (ppuVar2 == local_90 + -0xc8a2c) {\n          iVar8 = piVar4[0xb];\n          local_4c = local_a8;\n          iVar5 = -1;\n          if (iVar8 != 0) {\n            *(int *)((int)piVar10 + -0x10) = iVar8;\n            *(undefined4 *)((int)piVar10 + -0x14) = 0x1910c6;\n            local_b0 = iVar8;\n            sVar6 = strlen(*(char **)((int)piVar10 + -0x10));\n            iVar5 = sVar6 + local_b0;\n            iVar8 = local_b0;\n          }\n          *(undefined4 *)((int)piVar10 + -4) = 0;\n          *(int *)((int)piVar10 + -8) = iVar5;\n          *(int *)((int)piVar10 + -0xc) = iVar8;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1910e0;\n          FUN_00050e40();\n        }\n        else {\n          *(int **)((int)piVar10 + -0xc) = piVar4;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1914bc;\n          (*(code *)ppuVar2)();\n          piVar10 = (int *)((int)piVar10 + -4);\n        }\n        piVar7 = (int *)piVar4[2];\n        if (local_4c == local_a8) {\n          if (local_48 != 0) {\n            if (local_48 == 1) {\n              *(undefined1 *)piVar7 = (undefined1)local_44[0];\n              piVar7 = (int *)piVar4[2];\n            }\n            else {\n              *(int *)((int)piVar10 + -8) = local_48;\n              *(int **)((int)piVar10 + -0xc) = local_a8;\n              *(int **)((int)piVar10 + -0x10) = piVar7;\n              *(undefined4 *)((int)piVar10 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8));\n              piVar7 = (int *)piVar4[2];\n            }\n          }\n          piVar4[3] = local_48;\n          *(undefined1 *)((int)piVar7 + local_48) = 0;\n          iVar8 = local_44[0];\n        }\n        else {\n          if (piVar7 == piVar4 + 4) {\n            piVar4[2] = (int)local_4c;\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n          }\n          else {\n            piVar4[2] = (int)local_4c;\n            iVar8 = piVar4[4];\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n            local_4c = piVar7;\n            if (piVar7 != (int *)0x0) goto LAB_00191120;\n          }\n          local_4c = local_a8;\n          iVar8 = local_44[0];\n        }\nLAB_00191120:\n        local_44[0] = iVar8;\n        local_48 = 0;\n        *(undefined1 *)local_4c = 0;\n        if (local_4c != local_a8) {\n          *(int **)((int)piVar10 + -0x10) = local_4c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x191144;\n          FUN_001e6db0();\n        }\n      }\n      *(int *)((int)piVar10 + -4) = piVar4[2];\n      *(undefined4 *)((int)piVar10 + -8) = param_2;\n      *(int *)((int)piVar10 + -0xc) = (int)local_90 + -0xf4943;\n      *(int **)((int)piVar10 + -0x10) = local_98;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191165;\n      FUN_000653f0();\n      puVar9 = (undefined1 *)piVar10;\n    }\n    *(int ***)(puVar9 + -0x10) = local_9c;\n    *(undefined4 *)(puVar9 + -0x14) = 0x19117c;\n    FUN_0018fff0();\n    if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {\n      *(int ***)(puVar9 + -0x10) = local_9c;\n      *(undefined4 *)(puVar9 + -0x14) = 0x1911a8;\n      thunk_FUN_00190010();\n    }\n    ppuVar2 = *(undefined ***)(*piVar4 + 0x10);\n    if (ppuVar2 == local_a4) {\n      piVar10 = (int *)piVar4[9];\n      iVar8 = *piVar10;\n      *(int **)(puVar9 + -8) = piVar4;\n      *(undefined4 **)(puVar9 + -0xc) = param_1;\n      *(int **)(puVar9 + -0x10) = piVar10;\n      pcVar3 = *(code **)(iVar8 + 8);\n      *(undefined4 *)(puVar9 + -0x14) = 0x1911ca;\n      (*pcVar3)();\n    }\n    else {\n      *(undefined4 **)(puVar9 + -0xc) = param_1;\n      *(int **)(puVar9 + -0x10) = piVar4;\n      *(undefined4 *)(puVar9 + -0x14) = 0x1913ff;\n      (*(code *)ppuVar2)();\n    }\n    piVar10 = (int *)puVar9;\n    if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {\n      *(int ***)(puVar9 + -0xc) = local_9c;\n      *(int **)(puVar9 + -0x10) = &local_84;\n      *(undefined4 *)(puVar9 + -0x14) = 0x191202;\n      FUN_001900d0();\n      puVar11 = puVar9 + -4;\n      puVar1 = (undefined4 *)*local_94;\n      piVar10 = (int *)(puVar9 + -4);\n      if ((puVar1[2] != 0) && (piVar10 = (int *)(puVar9 + -4), (*(byte *)(puVar1 + 5) & 1) != 0)) {\n        local_b8 = *puVar1;\n        local_bc = local_7c / 1000;\n        local_98 = (int *)((local_7c % 1000) * 1000);\n        local_c0 = local_80 / 1000;\n        local_b0 = (local_80 % 1000) * 1000;\n        local_c4 = local_84 / 1000;\n        local_b4 = (local_84 % 1000) * 1000;\n        if (piVar4[3] == 0) {\n          ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n          if (ppuVar2 == local_90 + -0xc8a2c) {\n            iVar8 = piVar4[0xb];\n            local_c8 = local_5c;\n            iVar5 = -1;\n            local_64 = local_c8;\n            if (iVar8 != 0) {\n              *(int *)(puVar9 + -0x14) = iVar8;\n              *(undefined4 *)(puVar9 + -0x18) = 0x1912ff;\n              local_cc = iVar8;\n              sVar6 = strlen(*(char **)(puVar9 + -0x14));\n              iVar5 = sVar6 + local_cc;\n              iVar8 = local_cc;\n            }\n            puVar11 = puVar9 + -4;\n            *(undefined4 *)(puVar9 + -8) = 0;\n            *(int *)(puVar9 + -0xc) = iVar5;\n            *(int *)(puVar9 + -0x10) = iVar8;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191317;\n            FUN_00050e40();\n          }\n          else {\n            *(int **)(puVar9 + -0x10) = piVar4;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191579;\n            (*(code *)ppuVar2)();\n            local_c8 = local_5c;\n            puVar11 = puVar9 + -8;\n          }\n          piVar10 = (int *)piVar4[2];\n          if (local_64 == local_c8) {\n            if (local_60 != 0) {\n              if (local_60 == 1) {\n                *(undefined1 *)piVar10 = (undefined1)local_5c[0];\n                piVar10 = (int *)piVar4[2];\n              }\n              else {\n                *(int *)(puVar11 + -8) = local_60;\n                *(int **)(puVar11 + -0xc) = local_c8;\n                *(int **)(puVar11 + -0x10) = piVar10;\n                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;\n                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));\n                piVar10 = (int *)piVar4[2];\n              }\n            }\n            piVar4[3] = local_60;\n            *(undefined1 *)((int)piVar10 + local_60) = 0;\n            piVar10 = local_64;\n            iVar8 = local_5c[0];\n          }\n          else {\n            if (piVar10 == piVar4 + 4) {\n              piVar4[2] = (int)local_64;\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n            }\n            else {\n              piVar4[2] = (int)local_64;\n              iVar8 = piVar4[4];\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n              local_64 = piVar10;\n              if (piVar10 != (int *)0x0) goto LAB_00191357;\n            }\n            local_64 = local_c8;\n            local_c8 = local_5c;\n            piVar10 = local_c8;\n            iVar8 = local_5c[0];\n          }\nLAB_00191357:\n          local_5c[0] = iVar8;\n          local_60 = 0;\n          *(undefined1 *)piVar10 = 0;\n          if (local_64 != local_c8) {\n            *(int **)(puVar11 + -0x10) = local_64;\n            *(undefined4 *)(puVar11 + -0x14) = 0x19137b;\n            FUN_001e6db0();\n          }\n        }\n        *(int **)(puVar11 + -0xc) = local_98;\n        *(int *)(puVar11 + -0x10) = local_bc;\n        *(int *)(puVar11 + -0x14) = local_b0;\n        *(int *)(puVar11 + -0x18) = local_c0;\n        *(int *)(puVar11 + -0x1c) = local_b4;\n        *(int *)(puVar11 + -0x20) = local_c4;\n        *(int *)(puVar11 + -0x24) = piVar4[2];\n        *(undefined4 *)(puVar11 + -0x28) = param_2;\n        *(undefined ***)(puVar11 + -0x2c) = local_90 + -0x3d24b;\n        *(undefined4 *)(puVar11 + -0x30) = local_b8;\n        *(undefined4 *)(puVar11 + -0x34) = 0x1913c3;\n        FUN_000653f0();\n        piVar10 = (int *)puVar11;\n      }\n    }\n    iVar8 = *(int *)*param_1;\n    *(int **)((int)piVar10 + -0x10) = (int *)*param_1;\n    pcVar3 = *(code **)(iVar8 + 8);\n    *(undefined4 *)((int)piVar10 + -0x14) = 0x190f43;\n    (*pcVar3)();\n    param_1[5] = param_1[5] + -1;\n    *(undefined4 **)((int)piVar10 + -8) = local_a0;\n    *(int **)((int)piVar10 + -0xc) = piVar4;\n    *(undefined4 **)((int)piVar10 + -0x10) = param_1;\n                    \n    *(undefined4 *)((int)piVar10 + -0x14) = 0x190f57;\n    local_98 = (int *)FUN_00190b90();\n    if (local_98 == (int *)0x0) {\n      *(undefined4 **)((int)piVar10 + -0x10) = param_1;\n                    \n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191419;\n      local_98 = (int *)FUN_00190880();\n      if (local_98 != (int *)0x0) goto LAB_00190f68;\n    }\n    else {\nLAB_00190f68:\n      local_78[0] = 0;\n      ppuVar2 = *(undefined ***)(*local_98 + 0xc);\n      if (ppuVar2 != local_ac) {\n        *(undefined4 **)((int)piVar10 + -0xc) = local_a0;\n        *(int **)((int)piVar10 + -0x10) = local_98;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191441;\n        (*(code *)ppuVar2)();\n      }\n      param_1[5] = param_1[5] + 1;\n    }\n    iVar8 = *(int *)*param_1;\n    *(int **)((int)piVar10 + -0x10) = (int *)*param_1;\n    pcVar3 = *(code **)(iVar8 + 0xc);\n    *(undefined4 *)((int)piVar10 + -0x14) = 0x190f95;\n    (*pcVar3)();\n    ppuVar2 = *(undefined ***)(*piVar4 + 4);\n    if (ppuVar2 == local_90 + -0xc8ab8) {\n      *piVar4 = (int)(local_90 + -0x307b);\n      piVar7 = (int *)piVar4[9];\n      if (piVar7 != (int *)0x0) {\n        iVar8 = *piVar7;\n        *(int **)((int)piVar10 + -0x10) = piVar7;\n        pcVar3 = *(code **)(iVar8 + 4);\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x190fc9;\n        (*pcVar3)();\n      }\n      iVar8 = piVar4[10];\n      if (iVar8 != 0) {\n        if (*(int *)(iVar8 + 4) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 100;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915d4;\n          FUN_00069d00();\n        }\n        if (*(int *)(iVar8 + 8) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x65;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined1 **)((int)piVar10 + -0x14) = &LAB_001915f2;\n          FUN_00069d00();\n        }\n        if ((*(int *)(iVar8 + 0xc) != 0) || (*(int *)(iVar8 + 0x10) != 0)) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d215;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x2c;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915b6;\n          FUN_00069d00();\n        }\n        *(undefined4 *)((int)piVar10 + -0xc) = 0x14;\n        *(int *)((int)piVar10 + -0x10) = iVar8;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191010;\n        FUN_001e6d90();\n      }\n      *piVar4 = (int)(local_90 + -0x1717);\n      if ((int *)piVar4[2] != piVar4 + 4) {\n        *(int **)((int)piVar10 + -0x10) = (int *)piVar4[2];\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191034;\n        FUN_001e6db0();\n      }\n      *(undefined4 *)((int)piVar10 + -0xc) = 0x30;\n      *(int **)((int)piVar10 + -0x10) = piVar4;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191048;\n      FUN_001e6d90();\n      piVar4 = local_98;\n    }\n    else {\n      *(int **)((int)piVar10 + -0x10) = piVar4;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x1913d6;\n      (*(code *)ppuVar2)();\n      piVar4 = local_98;\n    }\n    local_98 = piVar4;\n    if (piVar4 == (int *)0x0) {\n      return 1;\n    }\n  } while( true );\n}" (type_identifier "undefined4") (function_declarator "FUN_00190e80(undefined4 *param_1,undefined4 param_2)" (identifier "FUN_00190e80") (parameter_list "(undefined4 *param_1,undefined4 param_2)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) () ")"))) (compound_statement "{\n  undefined4 *puVar1;\n  undefined **ppuVar2;\n  code *pcVar3;\n  int *piVar4;\n  int iVar5;\n  size_t sVar6;\n  int *piVar7;\n  int iVar8;\n  undefined1 *puVar9;\n  int *piVar10;\n  undefined1 *puVar11;\n  int local_cc;\n  int *local_c8;\n  int local_c4;\n  int local_c0;\n  int local_bc;\n  undefined4 local_b8;\n  int local_b4;\n  int local_b0;\n  undefined **local_ac;\n  int *local_a8;\n  undefined **local_a4;\n  undefined4 *local_a0;\n  int **local_9c;\n  int *local_98;\n  undefined **local_94;\n  undefined **local_90;\n  int local_84;\n  int local_80;\n  int local_7c;\n  undefined4 local_78 [5];\n  int *local_64;\n  int local_60;\n  int local_5c [4];\n  int *local_4c;\n  int local_48;\n  int local_44 [13];\n  \n  local_90 = &__DT_PLTGOT;\n  local_78[0] = 0;\n  (**(code **)(*(int *)*param_1 + 8))((int *)*param_1);\n                    \n  piVar4 = (int *)FUN_001908c0(param_1,param_2);\n  if (piVar4 == (int *)0x0) {\n    (**(code **)(*(int *)*param_1 + 0xc))((int *)*param_1);\n    return 0;\n  }\n  local_a0 = local_78;\n  local_ac = local_90 + -0xc8b40;\n  if (*(undefined ***)(*piVar4 + 0xc) != local_ac) {\n                    \n    (*(code *)*(undefined ***)(*piVar4 + 0xc))(piVar4,local_a0);\n  }\n  piVar10 = &local_cc;\n  param_1[5] = param_1[5] + 1;\n  (**(code **)(*(int *)*param_1 + 0xc))((int *)*param_1);\n  local_94 = local_90 + 0xde;\n  local_a4 = local_90 + -0xc8b3c;\n  local_a8 = local_44;\n  local_9c = &local_4c;\n  do {\n    puVar1 = (undefined4 *)*local_94;\n    puVar9 = (undefined1 *)piVar10;\n    if ((puVar1[2] != 0) && ((*(byte *)(puVar1 + 5) & 1) != 0)) {\n      local_98 = (int *)*puVar1;\n      if (piVar4[3] == 0) {\n        ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n        if (ppuVar2 == local_90 + -0xc8a2c) {\n          iVar8 = piVar4[0xb];\n          local_4c = local_a8;\n          iVar5 = -1;\n          if (iVar8 != 0) {\n            *(int *)((int)piVar10 + -0x10) = iVar8;\n            *(undefined4 *)((int)piVar10 + -0x14) = 0x1910c6;\n            local_b0 = iVar8;\n            sVar6 = strlen(*(char **)((int)piVar10 + -0x10));\n            iVar5 = sVar6 + local_b0;\n            iVar8 = local_b0;\n          }\n          *(undefined4 *)((int)piVar10 + -4) = 0;\n          *(int *)((int)piVar10 + -8) = iVar5;\n          *(int *)((int)piVar10 + -0xc) = iVar8;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1910e0;\n          FUN_00050e40();\n        }\n        else {\n          *(int **)((int)piVar10 + -0xc) = piVar4;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1914bc;\n          (*(code *)ppuVar2)();\n          piVar10 = (int *)((int)piVar10 + -4);\n        }\n        piVar7 = (int *)piVar4[2];\n        if (local_4c == local_a8) {\n          if (local_48 != 0) {\n            if (local_48 == 1) {\n              *(undefined1 *)piVar7 = (undefined1)local_44[0];\n              piVar7 = (int *)piVar4[2];\n            }\n            else {\n              *(int *)((int)piVar10 + -8) = local_48;\n              *(int **)((int)piVar10 + -0xc) = local_a8;\n              *(int **)((int)piVar10 + -0x10) = piVar7;\n              *(undefined4 *)((int)piVar10 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8));\n              piVar7 = (int *)piVar4[2];\n            }\n          }\n          piVar4[3] = local_48;\n          *(undefined1 *)((int)piVar7 + local_48) = 0;\n          iVar8 = local_44[0];\n        }\n        else {\n          if (piVar7 == piVar4 + 4) {\n            piVar4[2] = (int)local_4c;\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n          }\n          else {\n            piVar4[2] = (int)local_4c;\n            iVar8 = piVar4[4];\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n            local_4c = piVar7;\n            if (piVar7 != (int *)0x0) goto LAB_00191120;\n          }\n          local_4c = local_a8;\n          iVar8 = local_44[0];\n        }\nLAB_00191120:\n        local_44[0] = iVar8;\n        local_48 = 0;\n        *(undefined1 *)local_4c = 0;\n        if (local_4c != local_a8) {\n          *(int **)((int)piVar10 + -0x10) = local_4c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x191144;\n          FUN_001e6db0();\n        }\n      }\n      *(int *)((int)piVar10 + -4) = piVar4[2];\n      *(undefined4 *)((int)piVar10 + -8) = param_2;\n      *(int *)((int)piVar10 + -0xc) = (int)local_90 + -0xf4943;\n      *(int **)((int)piVar10 + -0x10) = local_98;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191165;\n      FUN_000653f0();\n      puVar9 = (undefined1 *)piVar10;\n    }\n    *(int ***)(puVar9 + -0x10) = local_9c;\n    *(undefined4 *)(puVar9 + -0x14) = 0x19117c;\n    FUN_0018fff0();\n    if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {\n      *(int ***)(puVar9 + -0x10) = local_9c;\n      *(undefined4 *)(puVar9 + -0x14) = 0x1911a8;\n      thunk_FUN_00190010();\n    }\n    ppuVar2 = *(undefined ***)(*piVar4 + 0x10);\n    if (ppuVar2 == local_a4) {\n      piVar10 = (int *)piVar4[9];\n      iVar8 = *piVar10;\n      *(int **)(puVar9 + -8) = piVar4;\n      *(undefined4 **)(puVar9 + -0xc) = param_1;\n      *(int **)(puVar9 + -0x10) = piVar10;\n      pcVar3 = *(code **)(iVar8 + 8);\n      *(undefined4 *)(puVar9 + -0x14) = 0x1911ca;\n      (*pcVar3)();\n    }\n    else {\n      *(undefined4 **)(puVar9 + -0xc) = param_1;\n      *(int **)(puVar9 + -0x10) = piVar4;\n      *(undefined4 *)(puVar9 + -0x14) = 0x1913ff;\n      (*(code *)ppuVar2)();\n    }\n    piVar10 = (int *)puVar9;\n    if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {\n      *(int ***)(puVar9 + -0xc) = local_9c;\n      *(int **)(puVar9 + -0x10) = &local_84;\n      *(undefined4 *)(puVar9 + -0x14) = 0x191202;\n      FUN_001900d0();\n      puVar11 = puVar9 + -4;\n      puVar1 = (undefined4 *)*local_94;\n      piVar10 = (int *)(puVar9 + -4);\n      if ((puVar1[2] != 0) && (piVar10 = (int *)(puVar9 + -4), (*(byte *)(puVar1 + 5) & 1) != 0)) {\n        local_b8 = *puVar1;\n        local_bc = local_7c / 1000;\n        local_98 = (int *)((local_7c % 1000) * 1000);\n        local_c0 = local_80 / 1000;\n        local_b0 = (local_80 % 1000) * 1000;\n        local_c4 = local_84 / 1000;\n        local_b4 = (local_84 % 1000) * 1000;\n        if (piVar4[3] == 0) {\n          ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n          if (ppuVar2 == local_90 + -0xc8a2c) {\n            iVar8 = piVar4[0xb];\n            local_c8 = local_5c;\n            iVar5 = -1;\n            local_64 = local_c8;\n            if (iVar8 != 0) {\n              *(int *)(puVar9 + -0x14) = iVar8;\n              *(undefined4 *)(puVar9 + -0x18) = 0x1912ff;\n              local_cc = iVar8;\n              sVar6 = strlen(*(char **)(puVar9 + -0x14));\n              iVar5 = sVar6 + local_cc;\n              iVar8 = local_cc;\n            }\n            puVar11 = puVar9 + -4;\n            *(undefined4 *)(puVar9 + -8) = 0;\n            *(int *)(puVar9 + -0xc) = iVar5;\n            *(int *)(puVar9 + -0x10) = iVar8;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191317;\n            FUN_00050e40();\n          }\n          else {\n            *(int **)(puVar9 + -0x10) = piVar4;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191579;\n            (*(code *)ppuVar2)();\n            local_c8 = local_5c;\n            puVar11 = puVar9 + -8;\n          }\n          piVar10 = (int *)piVar4[2];\n          if (local_64 == local_c8) {\n            if (local_60 != 0) {\n              if (local_60 == 1) {\n                *(undefined1 *)piVar10 = (undefined1)local_5c[0];\n                piVar10 = (int *)piVar4[2];\n              }\n              else {\n                *(int *)(puVar11 + -8) = local_60;\n                *(int **)(puVar11 + -0xc) = local_c8;\n                *(int **)(puVar11 + -0x10) = piVar10;\n                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;\n                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));\n                piVar10 = (int *)piVar4[2];\n              }\n            }\n            piVar4[3] = local_60;\n            *(undefined1 *)((int)piVar10 + local_60) = 0;\n            piVar10 = local_64;\n            iVar8 = local_5c[0];\n          }\n          else {\n            if (piVar10 == piVar4 + 4) {\n              piVar4[2] = (int)local_64;\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n            }\n            else {\n              piVar4[2] = (int)local_64;\n              iVar8 = piVar4[4];\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n              local_64 = piVar10;\n              if (piVar10 != (int *)0x0) goto LAB_00191357;\n            }\n            local_64 = local_c8;\n            local_c8 = local_5c;\n            piVar10 = local_c8;\n            iVar8 = local_5c[0];\n          }\nLAB_00191357:\n          local_5c[0] = iVar8;\n          local_60 = 0;\n          *(undefined1 *)piVar10 = 0;\n          if (local_64 != local_c8) {\n            *(int **)(puVar11 + -0x10) = local_64;\n            *(undefined4 *)(puVar11 + -0x14) = 0x19137b;\n            FUN_001e6db0();\n          }\n        }\n        *(int **)(puVar11 + -0xc) = local_98;\n        *(int *)(puVar11 + -0x10) = local_bc;\n        *(int *)(puVar11 + -0x14) = local_b0;\n        *(int *)(puVar11 + -0x18) = local_c0;\n        *(int *)(puVar11 + -0x1c) = local_b4;\n        *(int *)(puVar11 + -0x20) = local_c4;\n        *(int *)(puVar11 + -0x24) = piVar4[2];\n        *(undefined4 *)(puVar11 + -0x28) = param_2;\n        *(undefined ***)(puVar11 + -0x2c) = local_90 + -0x3d24b;\n        *(undefined4 *)(puVar11 + -0x30) = local_b8;\n        *(undefined4 *)(puVar11 + -0x34) = 0x1913c3;\n        FUN_000653f0();\n        piVar10 = (int *)puVar11;\n      }\n    }\n    iVar8 = *(int *)*param_1;\n    *(int **)((int)piVar10 + -0x10) = (int *)*param_1;\n    pcVar3 = *(code **)(iVar8 + 8);\n    *(undefined4 *)((int)piVar10 + -0x14) = 0x190f43;\n    (*pcVar3)();\n    param_1[5] = param_1[5] + -1;\n    *(undefined4 **)((int)piVar10 + -8) = local_a0;\n    *(int **)((int)piVar10 + -0xc) = piVar4;\n    *(undefined4 **)((int)piVar10 + -0x10) = param_1;\n                    \n    *(undefined4 *)((int)piVar10 + -0x14) = 0x190f57;\n    local_98 = (int *)FUN_00190b90();\n    if (local_98 == (int *)0x0) {\n      *(undefined4 **)((int)piVar10 + -0x10) = param_1;\n                    \n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191419;\n      local_98 = (int *)FUN_00190880();\n      if (local_98 != (int *)0x0) goto LAB_00190f68;\n    }\n    else {\nLAB_00190f68:\n      local_78[0] = 0;\n      ppuVar2 = *(undefined ***)(*local_98 + 0xc);\n      if (ppuVar2 != local_ac) {\n        *(undefined4 **)((int)piVar10 + -0xc) = local_a0;\n        *(int **)((int)piVar10 + -0x10) = local_98;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191441;\n        (*(code *)ppuVar2)();\n      }\n      param_1[5] = param_1[5] + 1;\n    }\n    iVar8 = *(int *)*param_1;\n    *(int **)((int)piVar10 + -0x10) = (int *)*param_1;\n    pcVar3 = *(code **)(iVar8 + 0xc);\n    *(undefined4 *)((int)piVar10 + -0x14) = 0x190f95;\n    (*pcVar3)();\n    ppuVar2 = *(undefined ***)(*piVar4 + 4);\n    if (ppuVar2 == local_90 + -0xc8ab8) {\n      *piVar4 = (int)(local_90 + -0x307b);\n      piVar7 = (int *)piVar4[9];\n      if (piVar7 != (int *)0x0) {\n        iVar8 = *piVar7;\n        *(int **)((int)piVar10 + -0x10) = piVar7;\n        pcVar3 = *(code **)(iVar8 + 4);\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x190fc9;\n        (*pcVar3)();\n      }\n      iVar8 = piVar4[10];\n      if (iVar8 != 0) {\n        if (*(int *)(iVar8 + 4) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 100;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915d4;\n          FUN_00069d00();\n        }\n        if (*(int *)(iVar8 + 8) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x65;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined1 **)((int)piVar10 + -0x14) = &LAB_001915f2;\n          FUN_00069d00();\n        }\n        if ((*(int *)(iVar8 + 0xc) != 0) || (*(int *)(iVar8 + 0x10) != 0)) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d215;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x2c;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915b6;\n          FUN_00069d00();\n        }\n        *(undefined4 *)((int)piVar10 + -0xc) = 0x14;\n        *(int *)((int)piVar10 + -0x10) = iVar8;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191010;\n        FUN_001e6d90();\n      }\n      *piVar4 = (int)(local_90 + -0x1717);\n      if ((int *)piVar4[2] != piVar4 + 4) {\n        *(int **)((int)piVar10 + -0x10) = (int *)piVar4[2];\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191034;\n        FUN_001e6db0();\n      }\n      *(undefined4 *)((int)piVar10 + -0xc) = 0x30;\n      *(int **)((int)piVar10 + -0x10) = piVar4;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191048;\n      FUN_001e6d90();\n      piVar4 = local_98;\n    }\n    else {\n      *(int **)((int)piVar10 + -0x10) = piVar4;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x1913d6;\n      (*(code *)ppuVar2)();\n      piVar4 = local_98;\n    }\n    local_98 = piVar4;\n    if (piVar4 == (int *)0x0) {\n      return 1;\n    }\n  } while( true );\n}" ({ "{") (declaration "undefined4 *puVar1;" (type_identifier "undefined4") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined **ppuVar2;" (type_identifier "undefined") (pointer_declarator "**ppuVar2" (* "*") (pointer_declarator "*ppuVar2" (* "*") (identifier "ppuVar2"))) (; ";")) (declaration "code *pcVar3;" (type_identifier "code") (pointer_declarator "*pcVar3" (* "*") (identifier "pcVar3")) (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "size_t sVar6;" (primitive_type "size_t") (identifier "sVar6") (; ";")) (declaration "int *piVar7;" (primitive_type "int") (pointer_declarator "*piVar7" (* "*") (identifier "piVar7")) (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "undefined1 *puVar9;" (type_identifier "undefined1") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "int *piVar10;" (primitive_type "int") (pointer_declarator "*piVar10" (* "*") (identifier "piVar10")) (; ";")) (declaration "undefined1 *puVar11;" (type_identifier "undefined1") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "int local_cc;" (primitive_type "int") (identifier "local_cc") (; ";")) (declaration "int *local_c8;" (primitive_type "int") (pointer_declarator "*local_c8" (* "*") (identifier "local_c8")) (; ";")) (declaration "int local_c4;" (primitive_type "int") (identifier "local_c4") (; ";")) (declaration "int local_c0;" (primitive_type "int") (identifier "local_c0") (; ";")) (declaration "int local_bc;" (primitive_type "int") (identifier "local_bc") (; ";")) (declaration "undefined4 local_b8;" (type_identifier "undefined4") (identifier "local_b8") (; ";")) (declaration "int local_b4;" (primitive_type "int") (identifier "local_b4") (; ";")) (declaration "int local_b0;" (primitive_type "int") (identifier "local_b0") (; ";")) (declaration "undefined **local_ac;" (type_identifier "undefined") (pointer_declarator "**local_ac" (* "*") (pointer_declarator "*local_ac" (* "*") (identifier "local_ac"))) (; ";")) (declaration "int *local_a8;" (primitive_type "int") (pointer_declarator "*local_a8" (* "*") (identifier "local_a8")) (; ";")) (declaration "undefined **local_a4;" (type_identifier "undefined") (pointer_declarator "**local_a4" (* "*") (pointer_declarator "*local_a4" (* "*") (identifier "local_a4"))) (; ";")) (declaration "undefined4 *local_a0;" (type_identifier "undefined4") (pointer_declarator "*local_a0" (* "*") (identifier "local_a0")) (; ";")) (declaration "int **local_9c;" (primitive_type "int") (pointer_declarator "**local_9c" (* "*") (pointer_declarator "*local_9c" (* "*") (identifier "local_9c"))) (; ";")) (declaration "int *local_98;" (primitive_type "int") (pointer_declarator "*local_98" (* "*") (identifier "local_98")) (; ";")) (declaration "undefined **local_94;" (type_identifier "undefined") (pointer_declarator "**local_94" (* "*") (pointer_declarator "*local_94" (* "*") (identifier "local_94"))) (; ";")) (declaration "undefined **local_90;" (type_identifier "undefined") (pointer_declarator "**local_90" (* "*") (pointer_declarator "*local_90" (* "*") (identifier "local_90"))) (; ";")) (declaration "int local_84;" (primitive_type "int") (identifier "local_84") (; ";")) (declaration "int local_80;" (primitive_type "int") (identifier "local_80") (; ";")) (declaration "int local_7c;" (primitive_type "int") (identifier "local_7c") (; ";")) (declaration "undefined4 local_78 [5];" (type_identifier "undefined4") (array_declarator "local_78 [5]" (identifier "local_78") ([ "[") (number_literal "5") (] "]")) (; ";")) (declaration "int *local_64;" (primitive_type "int") (pointer_declarator "*local_64" (* "*") (identifier "local_64")) (; ";")) (declaration "int local_60;" (primitive_type "int") (identifier "local_60") (; ";")) (declaration "int local_5c [4];" (primitive_type "int") (array_declarator "local_5c [4]" (identifier "local_5c") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "int *local_4c;" (primitive_type "int") (pointer_declarator "*local_4c" (* "*") (identifier "local_4c")) (; ";")) (declaration "int local_48;" (primitive_type "int") (identifier "local_48") (; ";")) (declaration "int local_44 [13];" (primitive_type "int") (array_declarator "local_44 [13]" (identifier "local_44") ([ "[") (number_literal "13") (] "]")) (; ";")) (expression_statement "local_90 = &__DT_PLTGOT;" (assignment_expression "local_90 = &__DT_PLTGOT" (identifier "local_90") (= "=") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (; ";")) (expression_statement "local_78[0] = 0;" (assignment_expression "local_78[0] = 0" (subscript_expression "local_78[0]" (identifier "local_78") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "(**(code **)(*(int *)*param_1 + 8))((int *)*param_1);" (call_expression "(**(code **)(*(int *)*param_1 + 8))((int *)*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 "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (+ "+") (number_literal "8")) () ")"))))) () ")")) (argument_list "((int *)*param_1)" (( "(") (cast_expression "(int *)*param_1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) () ")"))) (; ";")) (expression_statement "piVar4 = (int *)FUN_001908c0(param_1,param_2);" (assignment_expression "piVar4 = (int *)FUN_001908c0(param_1,param_2)" (identifier "piVar4") (= "=") (cast_expression "(int *)FUN_001908c0(param_1,param_2)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001908c0(param_1,param_2)" (identifier "FUN_001908c0") (argument_list "(param_1,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") () ")"))))) (; ";")) (if_statement "if (piVar4 == (int *)0x0) {\n    (**(code **)(*(int *)*param_1 + 0xc))((int *)*param_1);\n    return 0;\n  }" (if "if") (parenthesized_expression "(piVar4 == (int *)0x0)" (( "(") (binary_expression "piVar4 == (int *)0x0" (identifier "piVar4") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    (**(code **)(*(int *)*param_1 + 0xc))((int *)*param_1);\n    return 0;\n  }" ({ "{") (expression_statement "(**(code **)(*(int *)*param_1 + 0xc))((int *)*param_1);" (call_expression "(**(code **)(*(int *)*param_1 + 0xc))((int *)*param_1)" (parenthesized_expression "(**(code **)(*(int *)*param_1 + 0xc))" (( "(") (pointer_expression "**(code **)(*(int *)*param_1 + 0xc)" (* "*") (pointer_expression "*(code **)(*(int *)*param_1 + 0xc)" (* "*") (cast_expression "(code **)(*(int *)*param_1 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)*param_1 + 0xc)" (( "(") (binary_expression "*(int *)*param_1 + 0xc" (pointer_expression "*(int *)*param_1" (* "*") (cast_expression "(int *)*param_1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (+ "+") (number_literal "0xc")) () ")"))))) () ")")) (argument_list "((int *)*param_1)" (( "(") (cast_expression "(int *)*param_1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "local_a0 = local_78;" (assignment_expression "local_a0 = local_78" (identifier "local_a0") (= "=") (identifier "local_78")) (; ";")) (expression_statement "local_ac = local_90 + -0xc8b40;" (assignment_expression "local_ac = local_90 + -0xc8b40" (identifier "local_ac") (= "=") (binary_expression "local_90 + -0xc8b40" (identifier "local_90") (+ "+") (number_literal "-0xc8b40"))) (; ";")) (if_statement "if (*(undefined ***)(*piVar4 + 0xc) != local_ac) {\n                    \n    (*(code *)*(undefined ***)(*piVar4 + 0xc))(piVar4,local_a0);\n  }" (if "if") (parenthesized_expression "(*(undefined ***)(*piVar4 + 0xc) != local_ac)" (( "(") (binary_expression "*(undefined ***)(*piVar4 + 0xc) != local_ac" (pointer_expression "*(undefined ***)(*piVar4 + 0xc)" (* "*") (cast_expression "(undefined ***)(*piVar4 + 0xc)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(*piVar4 + 0xc)" (( "(") (binary_expression "*piVar4 + 0xc" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (+ "+") (number_literal "0xc")) () ")")))) (!= "!=") (identifier "local_ac")) () ")")) (compound_statement "{\n                    \n    (*(code *)*(undefined ***)(*piVar4 + 0xc))(piVar4,local_a0);\n  }" ({ "{") (expression_statement "(*(code *)*(undefined ***)(*piVar4 + 0xc))(piVar4,local_a0);" (call_expression "(*(code *)*(undefined ***)(*piVar4 + 0xc))(piVar4,local_a0)" (parenthesized_expression "(*(code *)*(undefined ***)(*piVar4 + 0xc))" (( "(") (pointer_expression "*(code *)*(undefined ***)(*piVar4 + 0xc)" (* "*") (cast_expression "(code *)*(undefined ***)(*piVar4 + 0xc)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*(undefined ***)(*piVar4 + 0xc)" (* "*") (cast_expression "(undefined ***)(*piVar4 + 0xc)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(*piVar4 + 0xc)" (( "(") (binary_expression "*piVar4 + 0xc" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (+ "+") (number_literal "0xc")) () ")")))))) () ")")) (argument_list "(piVar4,local_a0)" (( "(") (identifier "piVar4") (, ",") (identifier "local_a0") () ")"))) (; ";")) (} "}"))) (expression_statement "piVar10 = &local_cc;" (assignment_expression "piVar10 = &local_cc" (identifier "piVar10") (= "=") (pointer_expression "&local_cc" (& "&") (identifier "local_cc"))) (; ";")) (expression_statement "param_1[5] = param_1[5] + 1;" (assignment_expression "param_1[5] = param_1[5] + 1" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (= "=") (binary_expression "param_1[5] + 1" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "(**(code **)(*(int *)*param_1 + 0xc))((int *)*param_1);" (call_expression "(**(code **)(*(int *)*param_1 + 0xc))((int *)*param_1)" (parenthesized_expression "(**(code **)(*(int *)*param_1 + 0xc))" (( "(") (pointer_expression "**(code **)(*(int *)*param_1 + 0xc)" (* "*") (pointer_expression "*(code **)(*(int *)*param_1 + 0xc)" (* "*") (cast_expression "(code **)(*(int *)*param_1 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)*param_1 + 0xc)" (( "(") (binary_expression "*(int *)*param_1 + 0xc" (pointer_expression "*(int *)*param_1" (* "*") (cast_expression "(int *)*param_1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (+ "+") (number_literal "0xc")) () ")"))))) () ")")) (argument_list "((int *)*param_1)" (( "(") (cast_expression "(int *)*param_1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) () ")"))) (; ";")) (expression_statement "local_94 = local_90 + 0xde;" (assignment_expression "local_94 = local_90 + 0xde" (identifier "local_94") (= "=") (binary_expression "local_90 + 0xde" (identifier "local_90") (+ "+") (number_literal "0xde"))) (; ";")) (expression_statement "local_a4 = local_90 + -0xc8b3c;" (assignment_expression "local_a4 = local_90 + -0xc8b3c" (identifier "local_a4") (= "=") (binary_expression "local_90 + -0xc8b3c" (identifier "local_90") (+ "+") (number_literal "-0xc8b3c"))) (; ";")) (expression_statement "local_a8 = local_44;" (assignment_expression "local_a8 = local_44" (identifier "local_a8") (= "=") (identifier "local_44")) (; ";")) (expression_statement "local_9c = &local_4c;" (assignment_expression "local_9c = &local_4c" (identifier "local_9c") (= "=") (pointer_expression "&local_4c" (& "&") (identifier "local_4c"))) (; ";")) (do_statement "do {\n    puVar1 = (undefined4 *)*local_94;\n    puVar9 = (undefined1 *)piVar10;\n    if ((puVar1[2] != 0) && ((*(byte *)(puVar1 + 5) & 1) != 0)) {\n      local_98 = (int *)*puVar1;\n      if (piVar4[3] == 0) {\n        ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n        if (ppuVar2 == local_90 + -0xc8a2c) {\n          iVar8 = piVar4[0xb];\n          local_4c = local_a8;\n          iVar5 = -1;\n          if (iVar8 != 0) {\n            *(int *)((int)piVar10 + -0x10) = iVar8;\n            *(undefined4 *)((int)piVar10 + -0x14) = 0x1910c6;\n            local_b0 = iVar8;\n            sVar6 = strlen(*(char **)((int)piVar10 + -0x10));\n            iVar5 = sVar6 + local_b0;\n            iVar8 = local_b0;\n          }\n          *(undefined4 *)((int)piVar10 + -4) = 0;\n          *(int *)((int)piVar10 + -8) = iVar5;\n          *(int *)((int)piVar10 + -0xc) = iVar8;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1910e0;\n          FUN_00050e40();\n        }\n        else {\n          *(int **)((int)piVar10 + -0xc) = piVar4;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1914bc;\n          (*(code *)ppuVar2)();\n          piVar10 = (int *)((int)piVar10 + -4);\n        }\n        piVar7 = (int *)piVar4[2];\n        if (local_4c == local_a8) {\n          if (local_48 != 0) {\n            if (local_48 == 1) {\n              *(undefined1 *)piVar7 = (undefined1)local_44[0];\n              piVar7 = (int *)piVar4[2];\n            }\n            else {\n              *(int *)((int)piVar10 + -8) = local_48;\n              *(int **)((int)piVar10 + -0xc) = local_a8;\n              *(int **)((int)piVar10 + -0x10) = piVar7;\n              *(undefined4 *)((int)piVar10 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8));\n              piVar7 = (int *)piVar4[2];\n            }\n          }\n          piVar4[3] = local_48;\n          *(undefined1 *)((int)piVar7 + local_48) = 0;\n          iVar8 = local_44[0];\n        }\n        else {\n          if (piVar7 == piVar4 + 4) {\n            piVar4[2] = (int)local_4c;\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n          }\n          else {\n            piVar4[2] = (int)local_4c;\n            iVar8 = piVar4[4];\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n            local_4c = piVar7;\n            if (piVar7 != (int *)0x0) goto LAB_00191120;\n          }\n          local_4c = local_a8;\n          iVar8 = local_44[0];\n        }\nLAB_00191120:\n        local_44[0] = iVar8;\n        local_48 = 0;\n        *(undefined1 *)local_4c = 0;\n        if (local_4c != local_a8) {\n          *(int **)((int)piVar10 + -0x10) = local_4c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x191144;\n          FUN_001e6db0();\n        }\n      }\n      *(int *)((int)piVar10 + -4) = piVar4[2];\n      *(undefined4 *)((int)piVar10 + -8) = param_2;\n      *(int *)((int)piVar10 + -0xc) = (int)local_90 + -0xf4943;\n      *(int **)((int)piVar10 + -0x10) = local_98;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191165;\n      FUN_000653f0();\n      puVar9 = (undefined1 *)piVar10;\n    }\n    *(int ***)(puVar9 + -0x10) = local_9c;\n    *(undefined4 *)(puVar9 + -0x14) = 0x19117c;\n    FUN_0018fff0();\n    if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {\n      *(int ***)(puVar9 + -0x10) = local_9c;\n      *(undefined4 *)(puVar9 + -0x14) = 0x1911a8;\n      thunk_FUN_00190010();\n    }\n    ppuVar2 = *(undefined ***)(*piVar4 + 0x10);\n    if (ppuVar2 == local_a4) {\n      piVar10 = (int *)piVar4[9];\n      iVar8 = *piVar10;\n      *(int **)(puVar9 + -8) = piVar4;\n      *(undefined4 **)(puVar9 + -0xc) = param_1;\n      *(int **)(puVar9 + -0x10) = piVar10;\n      pcVar3 = *(code **)(iVar8 + 8);\n      *(undefined4 *)(puVar9 + -0x14) = 0x1911ca;\n      (*pcVar3)();\n    }\n    else {\n      *(undefined4 **)(puVar9 + -0xc) = param_1;\n      *(int **)(puVar9 + -0x10) = piVar4;\n      *(undefined4 *)(puVar9 + -0x14) = 0x1913ff;\n      (*(code *)ppuVar2)();\n    }\n    piVar10 = (int *)puVar9;\n    if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {\n      *(int ***)(puVar9 + -0xc) = local_9c;\n      *(int **)(puVar9 + -0x10) = &local_84;\n      *(undefined4 *)(puVar9 + -0x14) = 0x191202;\n      FUN_001900d0();\n      puVar11 = puVar9 + -4;\n      puVar1 = (undefined4 *)*local_94;\n      piVar10 = (int *)(puVar9 + -4);\n      if ((puVar1[2] != 0) && (piVar10 = (int *)(puVar9 + -4), (*(byte *)(puVar1 + 5) & 1) != 0)) {\n        local_b8 = *puVar1;\n        local_bc = local_7c / 1000;\n        local_98 = (int *)((local_7c % 1000) * 1000);\n        local_c0 = local_80 / 1000;\n        local_b0 = (local_80 % 1000) * 1000;\n        local_c4 = local_84 / 1000;\n        local_b4 = (local_84 % 1000) * 1000;\n        if (piVar4[3] == 0) {\n          ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n          if (ppuVar2 == local_90 + -0xc8a2c) {\n            iVar8 = piVar4[0xb];\n            local_c8 = local_5c;\n            iVar5 = -1;\n            local_64 = local_c8;\n            if (iVar8 != 0) {\n              *(int *)(puVar9 + -0x14) = iVar8;\n              *(undefined4 *)(puVar9 + -0x18) = 0x1912ff;\n              local_cc = iVar8;\n              sVar6 = strlen(*(char **)(puVar9 + -0x14));\n              iVar5 = sVar6 + local_cc;\n              iVar8 = local_cc;\n            }\n            puVar11 = puVar9 + -4;\n            *(undefined4 *)(puVar9 + -8) = 0;\n            *(int *)(puVar9 + -0xc) = iVar5;\n            *(int *)(puVar9 + -0x10) = iVar8;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191317;\n            FUN_00050e40();\n          }\n          else {\n            *(int **)(puVar9 + -0x10) = piVar4;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191579;\n            (*(code *)ppuVar2)();\n            local_c8 = local_5c;\n            puVar11 = puVar9 + -8;\n          }\n          piVar10 = (int *)piVar4[2];\n          if (local_64 == local_c8) {\n            if (local_60 != 0) {\n              if (local_60 == 1) {\n                *(undefined1 *)piVar10 = (undefined1)local_5c[0];\n                piVar10 = (int *)piVar4[2];\n              }\n              else {\n                *(int *)(puVar11 + -8) = local_60;\n                *(int **)(puVar11 + -0xc) = local_c8;\n                *(int **)(puVar11 + -0x10) = piVar10;\n                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;\n                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));\n                piVar10 = (int *)piVar4[2];\n              }\n            }\n            piVar4[3] = local_60;\n            *(undefined1 *)((int)piVar10 + local_60) = 0;\n            piVar10 = local_64;\n            iVar8 = local_5c[0];\n          }\n          else {\n            if (piVar10 == piVar4 + 4) {\n              piVar4[2] = (int)local_64;\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n            }\n            else {\n              piVar4[2] = (int)local_64;\n              iVar8 = piVar4[4];\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n              local_64 = piVar10;\n              if (piVar10 != (int *)0x0) goto LAB_00191357;\n            }\n            local_64 = local_c8;\n            local_c8 = local_5c;\n            piVar10 = local_c8;\n            iVar8 = local_5c[0];\n          }\nLAB_00191357:\n          local_5c[0] = iVar8;\n          local_60 = 0;\n          *(undefined1 *)piVar10 = 0;\n          if (local_64 != local_c8) {\n            *(int **)(puVar11 + -0x10) = local_64;\n            *(undefined4 *)(puVar11 + -0x14) = 0x19137b;\n            FUN_001e6db0();\n          }\n        }\n        *(int **)(puVar11 + -0xc) = local_98;\n        *(int *)(puVar11 + -0x10) = local_bc;\n        *(int *)(puVar11 + -0x14) = local_b0;\n        *(int *)(puVar11 + -0x18) = local_c0;\n        *(int *)(puVar11 + -0x1c) = local_b4;\n        *(int *)(puVar11 + -0x20) = local_c4;\n        *(int *)(puVar11 + -0x24) = piVar4[2];\n        *(undefined4 *)(puVar11 + -0x28) = param_2;\n        *(undefined ***)(puVar11 + -0x2c) = local_90 + -0x3d24b;\n        *(undefined4 *)(puVar11 + -0x30) = local_b8;\n        *(undefined4 *)(puVar11 + -0x34) = 0x1913c3;\n        FUN_000653f0();\n        piVar10 = (int *)puVar11;\n      }\n    }\n    iVar8 = *(int *)*param_1;\n    *(int **)((int)piVar10 + -0x10) = (int *)*param_1;\n    pcVar3 = *(code **)(iVar8 + 8);\n    *(undefined4 *)((int)piVar10 + -0x14) = 0x190f43;\n    (*pcVar3)();\n    param_1[5] = param_1[5] + -1;\n    *(undefined4 **)((int)piVar10 + -8) = local_a0;\n    *(int **)((int)piVar10 + -0xc) = piVar4;\n    *(undefined4 **)((int)piVar10 + -0x10) = param_1;\n                    \n    *(undefined4 *)((int)piVar10 + -0x14) = 0x190f57;\n    local_98 = (int *)FUN_00190b90();\n    if (local_98 == (int *)0x0) {\n      *(undefined4 **)((int)piVar10 + -0x10) = param_1;\n                    \n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191419;\n      local_98 = (int *)FUN_00190880();\n      if (local_98 != (int *)0x0) goto LAB_00190f68;\n    }\n    else {\nLAB_00190f68:\n      local_78[0] = 0;\n      ppuVar2 = *(undefined ***)(*local_98 + 0xc);\n      if (ppuVar2 != local_ac) {\n        *(undefined4 **)((int)piVar10 + -0xc) = local_a0;\n        *(int **)((int)piVar10 + -0x10) = local_98;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191441;\n        (*(code *)ppuVar2)();\n      }\n      param_1[5] = param_1[5] + 1;\n    }\n    iVar8 = *(int *)*param_1;\n    *(int **)((int)piVar10 + -0x10) = (int *)*param_1;\n    pcVar3 = *(code **)(iVar8 + 0xc);\n    *(undefined4 *)((int)piVar10 + -0x14) = 0x190f95;\n    (*pcVar3)();\n    ppuVar2 = *(undefined ***)(*piVar4 + 4);\n    if (ppuVar2 == local_90 + -0xc8ab8) {\n      *piVar4 = (int)(local_90 + -0x307b);\n      piVar7 = (int *)piVar4[9];\n      if (piVar7 != (int *)0x0) {\n        iVar8 = *piVar7;\n        *(int **)((int)piVar10 + -0x10) = piVar7;\n        pcVar3 = *(code **)(iVar8 + 4);\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x190fc9;\n        (*pcVar3)();\n      }\n      iVar8 = piVar4[10];\n      if (iVar8 != 0) {\n        if (*(int *)(iVar8 + 4) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 100;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915d4;\n          FUN_00069d00();\n        }\n        if (*(int *)(iVar8 + 8) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x65;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined1 **)((int)piVar10 + -0x14) = &LAB_001915f2;\n          FUN_00069d00();\n        }\n        if ((*(int *)(iVar8 + 0xc) != 0) || (*(int *)(iVar8 + 0x10) != 0)) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d215;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x2c;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915b6;\n          FUN_00069d00();\n        }\n        *(undefined4 *)((int)piVar10 + -0xc) = 0x14;\n        *(int *)((int)piVar10 + -0x10) = iVar8;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191010;\n        FUN_001e6d90();\n      }\n      *piVar4 = (int)(local_90 + -0x1717);\n      if ((int *)piVar4[2] != piVar4 + 4) {\n        *(int **)((int)piVar10 + -0x10) = (int *)piVar4[2];\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191034;\n        FUN_001e6db0();\n      }\n      *(undefined4 *)((int)piVar10 + -0xc) = 0x30;\n      *(int **)((int)piVar10 + -0x10) = piVar4;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191048;\n      FUN_001e6d90();\n      piVar4 = local_98;\n    }\n    else {\n      *(int **)((int)piVar10 + -0x10) = piVar4;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x1913d6;\n      (*(code *)ppuVar2)();\n      piVar4 = local_98;\n    }\n    local_98 = piVar4;\n    if (piVar4 == (int *)0x0) {\n      return 1;\n    }\n  } while( true );" (do "do") (compound_statement "{\n    puVar1 = (undefined4 *)*local_94;\n    puVar9 = (undefined1 *)piVar10;\n    if ((puVar1[2] != 0) && ((*(byte *)(puVar1 + 5) & 1) != 0)) {\n      local_98 = (int *)*puVar1;\n      if (piVar4[3] == 0) {\n        ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n        if (ppuVar2 == local_90 + -0xc8a2c) {\n          iVar8 = piVar4[0xb];\n          local_4c = local_a8;\n          iVar5 = -1;\n          if (iVar8 != 0) {\n            *(int *)((int)piVar10 + -0x10) = iVar8;\n            *(undefined4 *)((int)piVar10 + -0x14) = 0x1910c6;\n            local_b0 = iVar8;\n            sVar6 = strlen(*(char **)((int)piVar10 + -0x10));\n            iVar5 = sVar6 + local_b0;\n            iVar8 = local_b0;\n          }\n          *(undefined4 *)((int)piVar10 + -4) = 0;\n          *(int *)((int)piVar10 + -8) = iVar5;\n          *(int *)((int)piVar10 + -0xc) = iVar8;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1910e0;\n          FUN_00050e40();\n        }\n        else {\n          *(int **)((int)piVar10 + -0xc) = piVar4;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1914bc;\n          (*(code *)ppuVar2)();\n          piVar10 = (int *)((int)piVar10 + -4);\n        }\n        piVar7 = (int *)piVar4[2];\n        if (local_4c == local_a8) {\n          if (local_48 != 0) {\n            if (local_48 == 1) {\n              *(undefined1 *)piVar7 = (undefined1)local_44[0];\n              piVar7 = (int *)piVar4[2];\n            }\n            else {\n              *(int *)((int)piVar10 + -8) = local_48;\n              *(int **)((int)piVar10 + -0xc) = local_a8;\n              *(int **)((int)piVar10 + -0x10) = piVar7;\n              *(undefined4 *)((int)piVar10 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8));\n              piVar7 = (int *)piVar4[2];\n            }\n          }\n          piVar4[3] = local_48;\n          *(undefined1 *)((int)piVar7 + local_48) = 0;\n          iVar8 = local_44[0];\n        }\n        else {\n          if (piVar7 == piVar4 + 4) {\n            piVar4[2] = (int)local_4c;\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n          }\n          else {\n            piVar4[2] = (int)local_4c;\n            iVar8 = piVar4[4];\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n            local_4c = piVar7;\n            if (piVar7 != (int *)0x0) goto LAB_00191120;\n          }\n          local_4c = local_a8;\n          iVar8 = local_44[0];\n        }\nLAB_00191120:\n        local_44[0] = iVar8;\n        local_48 = 0;\n        *(undefined1 *)local_4c = 0;\n        if (local_4c != local_a8) {\n          *(int **)((int)piVar10 + -0x10) = local_4c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x191144;\n          FUN_001e6db0();\n        }\n      }\n      *(int *)((int)piVar10 + -4) = piVar4[2];\n      *(undefined4 *)((int)piVar10 + -8) = param_2;\n      *(int *)((int)piVar10 + -0xc) = (int)local_90 + -0xf4943;\n      *(int **)((int)piVar10 + -0x10) = local_98;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191165;\n      FUN_000653f0();\n      puVar9 = (undefined1 *)piVar10;\n    }\n    *(int ***)(puVar9 + -0x10) = local_9c;\n    *(undefined4 *)(puVar9 + -0x14) = 0x19117c;\n    FUN_0018fff0();\n    if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {\n      *(int ***)(puVar9 + -0x10) = local_9c;\n      *(undefined4 *)(puVar9 + -0x14) = 0x1911a8;\n      thunk_FUN_00190010();\n    }\n    ppuVar2 = *(undefined ***)(*piVar4 + 0x10);\n    if (ppuVar2 == local_a4) {\n      piVar10 = (int *)piVar4[9];\n      iVar8 = *piVar10;\n      *(int **)(puVar9 + -8) = piVar4;\n      *(undefined4 **)(puVar9 + -0xc) = param_1;\n      *(int **)(puVar9 + -0x10) = piVar10;\n      pcVar3 = *(code **)(iVar8 + 8);\n      *(undefined4 *)(puVar9 + -0x14) = 0x1911ca;\n      (*pcVar3)();\n    }\n    else {\n      *(undefined4 **)(puVar9 + -0xc) = param_1;\n      *(int **)(puVar9 + -0x10) = piVar4;\n      *(undefined4 *)(puVar9 + -0x14) = 0x1913ff;\n      (*(code *)ppuVar2)();\n    }\n    piVar10 = (int *)puVar9;\n    if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {\n      *(int ***)(puVar9 + -0xc) = local_9c;\n      *(int **)(puVar9 + -0x10) = &local_84;\n      *(undefined4 *)(puVar9 + -0x14) = 0x191202;\n      FUN_001900d0();\n      puVar11 = puVar9 + -4;\n      puVar1 = (undefined4 *)*local_94;\n      piVar10 = (int *)(puVar9 + -4);\n      if ((puVar1[2] != 0) && (piVar10 = (int *)(puVar9 + -4), (*(byte *)(puVar1 + 5) & 1) != 0)) {\n        local_b8 = *puVar1;\n        local_bc = local_7c / 1000;\n        local_98 = (int *)((local_7c % 1000) * 1000);\n        local_c0 = local_80 / 1000;\n        local_b0 = (local_80 % 1000) * 1000;\n        local_c4 = local_84 / 1000;\n        local_b4 = (local_84 % 1000) * 1000;\n        if (piVar4[3] == 0) {\n          ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n          if (ppuVar2 == local_90 + -0xc8a2c) {\n            iVar8 = piVar4[0xb];\n            local_c8 = local_5c;\n            iVar5 = -1;\n            local_64 = local_c8;\n            if (iVar8 != 0) {\n              *(int *)(puVar9 + -0x14) = iVar8;\n              *(undefined4 *)(puVar9 + -0x18) = 0x1912ff;\n              local_cc = iVar8;\n              sVar6 = strlen(*(char **)(puVar9 + -0x14));\n              iVar5 = sVar6 + local_cc;\n              iVar8 = local_cc;\n            }\n            puVar11 = puVar9 + -4;\n            *(undefined4 *)(puVar9 + -8) = 0;\n            *(int *)(puVar9 + -0xc) = iVar5;\n            *(int *)(puVar9 + -0x10) = iVar8;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191317;\n            FUN_00050e40();\n          }\n          else {\n            *(int **)(puVar9 + -0x10) = piVar4;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191579;\n            (*(code *)ppuVar2)();\n            local_c8 = local_5c;\n            puVar11 = puVar9 + -8;\n          }\n          piVar10 = (int *)piVar4[2];\n          if (local_64 == local_c8) {\n            if (local_60 != 0) {\n              if (local_60 == 1) {\n                *(undefined1 *)piVar10 = (undefined1)local_5c[0];\n                piVar10 = (int *)piVar4[2];\n              }\n              else {\n                *(int *)(puVar11 + -8) = local_60;\n                *(int **)(puVar11 + -0xc) = local_c8;\n                *(int **)(puVar11 + -0x10) = piVar10;\n                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;\n                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));\n                piVar10 = (int *)piVar4[2];\n              }\n            }\n            piVar4[3] = local_60;\n            *(undefined1 *)((int)piVar10 + local_60) = 0;\n            piVar10 = local_64;\n            iVar8 = local_5c[0];\n          }\n          else {\n            if (piVar10 == piVar4 + 4) {\n              piVar4[2] = (int)local_64;\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n            }\n            else {\n              piVar4[2] = (int)local_64;\n              iVar8 = piVar4[4];\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n              local_64 = piVar10;\n              if (piVar10 != (int *)0x0) goto LAB_00191357;\n            }\n            local_64 = local_c8;\n            local_c8 = local_5c;\n            piVar10 = local_c8;\n            iVar8 = local_5c[0];\n          }\nLAB_00191357:\n          local_5c[0] = iVar8;\n          local_60 = 0;\n          *(undefined1 *)piVar10 = 0;\n          if (local_64 != local_c8) {\n            *(int **)(puVar11 + -0x10) = local_64;\n            *(undefined4 *)(puVar11 + -0x14) = 0x19137b;\n            FUN_001e6db0();\n          }\n        }\n        *(int **)(puVar11 + -0xc) = local_98;\n        *(int *)(puVar11 + -0x10) = local_bc;\n        *(int *)(puVar11 + -0x14) = local_b0;\n        *(int *)(puVar11 + -0x18) = local_c0;\n        *(int *)(puVar11 + -0x1c) = local_b4;\n        *(int *)(puVar11 + -0x20) = local_c4;\n        *(int *)(puVar11 + -0x24) = piVar4[2];\n        *(undefined4 *)(puVar11 + -0x28) = param_2;\n        *(undefined ***)(puVar11 + -0x2c) = local_90 + -0x3d24b;\n        *(undefined4 *)(puVar11 + -0x30) = local_b8;\n        *(undefined4 *)(puVar11 + -0x34) = 0x1913c3;\n        FUN_000653f0();\n        piVar10 = (int *)puVar11;\n      }\n    }\n    iVar8 = *(int *)*param_1;\n    *(int **)((int)piVar10 + -0x10) = (int *)*param_1;\n    pcVar3 = *(code **)(iVar8 + 8);\n    *(undefined4 *)((int)piVar10 + -0x14) = 0x190f43;\n    (*pcVar3)();\n    param_1[5] = param_1[5] + -1;\n    *(undefined4 **)((int)piVar10 + -8) = local_a0;\n    *(int **)((int)piVar10 + -0xc) = piVar4;\n    *(undefined4 **)((int)piVar10 + -0x10) = param_1;\n                    \n    *(undefined4 *)((int)piVar10 + -0x14) = 0x190f57;\n    local_98 = (int *)FUN_00190b90();\n    if (local_98 == (int *)0x0) {\n      *(undefined4 **)((int)piVar10 + -0x10) = param_1;\n                    \n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191419;\n      local_98 = (int *)FUN_00190880();\n      if (local_98 != (int *)0x0) goto LAB_00190f68;\n    }\n    else {\nLAB_00190f68:\n      local_78[0] = 0;\n      ppuVar2 = *(undefined ***)(*local_98 + 0xc);\n      if (ppuVar2 != local_ac) {\n        *(undefined4 **)((int)piVar10 + -0xc) = local_a0;\n        *(int **)((int)piVar10 + -0x10) = local_98;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191441;\n        (*(code *)ppuVar2)();\n      }\n      param_1[5] = param_1[5] + 1;\n    }\n    iVar8 = *(int *)*param_1;\n    *(int **)((int)piVar10 + -0x10) = (int *)*param_1;\n    pcVar3 = *(code **)(iVar8 + 0xc);\n    *(undefined4 *)((int)piVar10 + -0x14) = 0x190f95;\n    (*pcVar3)();\n    ppuVar2 = *(undefined ***)(*piVar4 + 4);\n    if (ppuVar2 == local_90 + -0xc8ab8) {\n      *piVar4 = (int)(local_90 + -0x307b);\n      piVar7 = (int *)piVar4[9];\n      if (piVar7 != (int *)0x0) {\n        iVar8 = *piVar7;\n        *(int **)((int)piVar10 + -0x10) = piVar7;\n        pcVar3 = *(code **)(iVar8 + 4);\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x190fc9;\n        (*pcVar3)();\n      }\n      iVar8 = piVar4[10];\n      if (iVar8 != 0) {\n        if (*(int *)(iVar8 + 4) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 100;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915d4;\n          FUN_00069d00();\n        }\n        if (*(int *)(iVar8 + 8) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x65;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined1 **)((int)piVar10 + -0x14) = &LAB_001915f2;\n          FUN_00069d00();\n        }\n        if ((*(int *)(iVar8 + 0xc) != 0) || (*(int *)(iVar8 + 0x10) != 0)) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d215;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x2c;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915b6;\n          FUN_00069d00();\n        }\n        *(undefined4 *)((int)piVar10 + -0xc) = 0x14;\n        *(int *)((int)piVar10 + -0x10) = iVar8;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191010;\n        FUN_001e6d90();\n      }\n      *piVar4 = (int)(local_90 + -0x1717);\n      if ((int *)piVar4[2] != piVar4 + 4) {\n        *(int **)((int)piVar10 + -0x10) = (int *)piVar4[2];\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191034;\n        FUN_001e6db0();\n      }\n      *(undefined4 *)((int)piVar10 + -0xc) = 0x30;\n      *(int **)((int)piVar10 + -0x10) = piVar4;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191048;\n      FUN_001e6d90();\n      piVar4 = local_98;\n    }\n    else {\n      *(int **)((int)piVar10 + -0x10) = piVar4;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x1913d6;\n      (*(code *)ppuVar2)();\n      piVar4 = local_98;\n    }\n    local_98 = piVar4;\n    if (piVar4 == (int *)0x0) {\n      return 1;\n    }\n  }" ({ "{") (expression_statement "puVar1 = (undefined4 *)*local_94;" (assignment_expression "puVar1 = (undefined4 *)*local_94" (identifier "puVar1") (= "=") (cast_expression "(undefined4 *)*local_94" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*local_94" (* "*") (identifier "local_94")))) (; ";")) (expression_statement "puVar9 = (undefined1 *)piVar10;" (assignment_expression "puVar9 = (undefined1 *)piVar10" (identifier "puVar9") (= "=") (cast_expression "(undefined1 *)piVar10" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "piVar10"))) (; ";")) (if_statement "if ((puVar1[2] != 0) && ((*(byte *)(puVar1 + 5) & 1) != 0)) {\n      local_98 = (int *)*puVar1;\n      if (piVar4[3] == 0) {\n        ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n        if (ppuVar2 == local_90 + -0xc8a2c) {\n          iVar8 = piVar4[0xb];\n          local_4c = local_a8;\n          iVar5 = -1;\n          if (iVar8 != 0) {\n            *(int *)((int)piVar10 + -0x10) = iVar8;\n            *(undefined4 *)((int)piVar10 + -0x14) = 0x1910c6;\n            local_b0 = iVar8;\n            sVar6 = strlen(*(char **)((int)piVar10 + -0x10));\n            iVar5 = sVar6 + local_b0;\n            iVar8 = local_b0;\n          }\n          *(undefined4 *)((int)piVar10 + -4) = 0;\n          *(int *)((int)piVar10 + -8) = iVar5;\n          *(int *)((int)piVar10 + -0xc) = iVar8;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1910e0;\n          FUN_00050e40();\n        }\n        else {\n          *(int **)((int)piVar10 + -0xc) = piVar4;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1914bc;\n          (*(code *)ppuVar2)();\n          piVar10 = (int *)((int)piVar10 + -4);\n        }\n        piVar7 = (int *)piVar4[2];\n        if (local_4c == local_a8) {\n          if (local_48 != 0) {\n            if (local_48 == 1) {\n              *(undefined1 *)piVar7 = (undefined1)local_44[0];\n              piVar7 = (int *)piVar4[2];\n            }\n            else {\n              *(int *)((int)piVar10 + -8) = local_48;\n              *(int **)((int)piVar10 + -0xc) = local_a8;\n              *(int **)((int)piVar10 + -0x10) = piVar7;\n              *(undefined4 *)((int)piVar10 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8));\n              piVar7 = (int *)piVar4[2];\n            }\n          }\n          piVar4[3] = local_48;\n          *(undefined1 *)((int)piVar7 + local_48) = 0;\n          iVar8 = local_44[0];\n        }\n        else {\n          if (piVar7 == piVar4 + 4) {\n            piVar4[2] = (int)local_4c;\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n          }\n          else {\n            piVar4[2] = (int)local_4c;\n            iVar8 = piVar4[4];\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n            local_4c = piVar7;\n            if (piVar7 != (int *)0x0) goto LAB_00191120;\n          }\n          local_4c = local_a8;\n          iVar8 = local_44[0];\n        }\nLAB_00191120:\n        local_44[0] = iVar8;\n        local_48 = 0;\n        *(undefined1 *)local_4c = 0;\n        if (local_4c != local_a8) {\n          *(int **)((int)piVar10 + -0x10) = local_4c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x191144;\n          FUN_001e6db0();\n        }\n      }\n      *(int *)((int)piVar10 + -4) = piVar4[2];\n      *(undefined4 *)((int)piVar10 + -8) = param_2;\n      *(int *)((int)piVar10 + -0xc) = (int)local_90 + -0xf4943;\n      *(int **)((int)piVar10 + -0x10) = local_98;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191165;\n      FUN_000653f0();\n      puVar9 = (undefined1 *)piVar10;\n    }" (if "if") (parenthesized_expression "((puVar1[2] != 0) && ((*(byte *)(puVar1 + 5) & 1) != 0))" (( "(") (binary_expression "(puVar1[2] != 0) && ((*(byte *)(puVar1 + 5) & 1) != 0)" (parenthesized_expression "(puVar1[2] != 0)" (( "(") (binary_expression "puVar1[2] != 0" (subscript_expression "puVar1[2]" (identifier "puVar1") ([ "[") (number_literal "2") (] "]")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)(puVar1 + 5) & 1) != 0)" (( "(") (binary_expression "(*(byte *)(puVar1 + 5) & 1) != 0" (parenthesized_expression "(*(byte *)(puVar1 + 5) & 1)" (( "(") (binary_expression "*(byte *)(puVar1 + 5) & 1" (pointer_expression "*(byte *)(puVar1 + 5)" (* "*") (cast_expression "(byte *)(puVar1 + 5)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + 5)" (( "(") (binary_expression "puVar1 + 5" (identifier "puVar1") (+ "+") (number_literal "5")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      local_98 = (int *)*puVar1;\n      if (piVar4[3] == 0) {\n        ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n        if (ppuVar2 == local_90 + -0xc8a2c) {\n          iVar8 = piVar4[0xb];\n          local_4c = local_a8;\n          iVar5 = -1;\n          if (iVar8 != 0) {\n            *(int *)((int)piVar10 + -0x10) = iVar8;\n            *(undefined4 *)((int)piVar10 + -0x14) = 0x1910c6;\n            local_b0 = iVar8;\n            sVar6 = strlen(*(char **)((int)piVar10 + -0x10));\n            iVar5 = sVar6 + local_b0;\n            iVar8 = local_b0;\n          }\n          *(undefined4 *)((int)piVar10 + -4) = 0;\n          *(int *)((int)piVar10 + -8) = iVar5;\n          *(int *)((int)piVar10 + -0xc) = iVar8;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1910e0;\n          FUN_00050e40();\n        }\n        else {\n          *(int **)((int)piVar10 + -0xc) = piVar4;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1914bc;\n          (*(code *)ppuVar2)();\n          piVar10 = (int *)((int)piVar10 + -4);\n        }\n        piVar7 = (int *)piVar4[2];\n        if (local_4c == local_a8) {\n          if (local_48 != 0) {\n            if (local_48 == 1) {\n              *(undefined1 *)piVar7 = (undefined1)local_44[0];\n              piVar7 = (int *)piVar4[2];\n            }\n            else {\n              *(int *)((int)piVar10 + -8) = local_48;\n              *(int **)((int)piVar10 + -0xc) = local_a8;\n              *(int **)((int)piVar10 + -0x10) = piVar7;\n              *(undefined4 *)((int)piVar10 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8));\n              piVar7 = (int *)piVar4[2];\n            }\n          }\n          piVar4[3] = local_48;\n          *(undefined1 *)((int)piVar7 + local_48) = 0;\n          iVar8 = local_44[0];\n        }\n        else {\n          if (piVar7 == piVar4 + 4) {\n            piVar4[2] = (int)local_4c;\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n          }\n          else {\n            piVar4[2] = (int)local_4c;\n            iVar8 = piVar4[4];\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n            local_4c = piVar7;\n            if (piVar7 != (int *)0x0) goto LAB_00191120;\n          }\n          local_4c = local_a8;\n          iVar8 = local_44[0];\n        }\nLAB_00191120:\n        local_44[0] = iVar8;\n        local_48 = 0;\n        *(undefined1 *)local_4c = 0;\n        if (local_4c != local_a8) {\n          *(int **)((int)piVar10 + -0x10) = local_4c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x191144;\n          FUN_001e6db0();\n        }\n      }\n      *(int *)((int)piVar10 + -4) = piVar4[2];\n      *(undefined4 *)((int)piVar10 + -8) = param_2;\n      *(int *)((int)piVar10 + -0xc) = (int)local_90 + -0xf4943;\n      *(int **)((int)piVar10 + -0x10) = local_98;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191165;\n      FUN_000653f0();\n      puVar9 = (undefined1 *)piVar10;\n    }" ({ "{") (expression_statement "local_98 = (int *)*puVar1;" (assignment_expression "local_98 = (int *)*puVar1" (identifier "local_98") (= "=") (cast_expression "(int *)*puVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar1" (* "*") (identifier "puVar1")))) (; ";")) (if_statement "if (piVar4[3] == 0) {\n        ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n        if (ppuVar2 == local_90 + -0xc8a2c) {\n          iVar8 = piVar4[0xb];\n          local_4c = local_a8;\n          iVar5 = -1;\n          if (iVar8 != 0) {\n            *(int *)((int)piVar10 + -0x10) = iVar8;\n            *(undefined4 *)((int)piVar10 + -0x14) = 0x1910c6;\n            local_b0 = iVar8;\n            sVar6 = strlen(*(char **)((int)piVar10 + -0x10));\n            iVar5 = sVar6 + local_b0;\n            iVar8 = local_b0;\n          }\n          *(undefined4 *)((int)piVar10 + -4) = 0;\n          *(int *)((int)piVar10 + -8) = iVar5;\n          *(int *)((int)piVar10 + -0xc) = iVar8;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1910e0;\n          FUN_00050e40();\n        }\n        else {\n          *(int **)((int)piVar10 + -0xc) = piVar4;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1914bc;\n          (*(code *)ppuVar2)();\n          piVar10 = (int *)((int)piVar10 + -4);\n        }\n        piVar7 = (int *)piVar4[2];\n        if (local_4c == local_a8) {\n          if (local_48 != 0) {\n            if (local_48 == 1) {\n              *(undefined1 *)piVar7 = (undefined1)local_44[0];\n              piVar7 = (int *)piVar4[2];\n            }\n            else {\n              *(int *)((int)piVar10 + -8) = local_48;\n              *(int **)((int)piVar10 + -0xc) = local_a8;\n              *(int **)((int)piVar10 + -0x10) = piVar7;\n              *(undefined4 *)((int)piVar10 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8));\n              piVar7 = (int *)piVar4[2];\n            }\n          }\n          piVar4[3] = local_48;\n          *(undefined1 *)((int)piVar7 + local_48) = 0;\n          iVar8 = local_44[0];\n        }\n        else {\n          if (piVar7 == piVar4 + 4) {\n            piVar4[2] = (int)local_4c;\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n          }\n          else {\n            piVar4[2] = (int)local_4c;\n            iVar8 = piVar4[4];\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n            local_4c = piVar7;\n            if (piVar7 != (int *)0x0) goto LAB_00191120;\n          }\n          local_4c = local_a8;\n          iVar8 = local_44[0];\n        }\nLAB_00191120:\n        local_44[0] = iVar8;\n        local_48 = 0;\n        *(undefined1 *)local_4c = 0;\n        if (local_4c != local_a8) {\n          *(int **)((int)piVar10 + -0x10) = local_4c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x191144;\n          FUN_001e6db0();\n        }\n      }" (if "if") (parenthesized_expression "(piVar4[3] == 0)" (( "(") (binary_expression "piVar4[3] == 0" (subscript_expression "piVar4[3]" (identifier "piVar4") ([ "[") (number_literal "3") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n        if (ppuVar2 == local_90 + -0xc8a2c) {\n          iVar8 = piVar4[0xb];\n          local_4c = local_a8;\n          iVar5 = -1;\n          if (iVar8 != 0) {\n            *(int *)((int)piVar10 + -0x10) = iVar8;\n            *(undefined4 *)((int)piVar10 + -0x14) = 0x1910c6;\n            local_b0 = iVar8;\n            sVar6 = strlen(*(char **)((int)piVar10 + -0x10));\n            iVar5 = sVar6 + local_b0;\n            iVar8 = local_b0;\n          }\n          *(undefined4 *)((int)piVar10 + -4) = 0;\n          *(int *)((int)piVar10 + -8) = iVar5;\n          *(int *)((int)piVar10 + -0xc) = iVar8;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1910e0;\n          FUN_00050e40();\n        }\n        else {\n          *(int **)((int)piVar10 + -0xc) = piVar4;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1914bc;\n          (*(code *)ppuVar2)();\n          piVar10 = (int *)((int)piVar10 + -4);\n        }\n        piVar7 = (int *)piVar4[2];\n        if (local_4c == local_a8) {\n          if (local_48 != 0) {\n            if (local_48 == 1) {\n              *(undefined1 *)piVar7 = (undefined1)local_44[0];\n              piVar7 = (int *)piVar4[2];\n            }\n            else {\n              *(int *)((int)piVar10 + -8) = local_48;\n              *(int **)((int)piVar10 + -0xc) = local_a8;\n              *(int **)((int)piVar10 + -0x10) = piVar7;\n              *(undefined4 *)((int)piVar10 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8));\n              piVar7 = (int *)piVar4[2];\n            }\n          }\n          piVar4[3] = local_48;\n          *(undefined1 *)((int)piVar7 + local_48) = 0;\n          iVar8 = local_44[0];\n        }\n        else {\n          if (piVar7 == piVar4 + 4) {\n            piVar4[2] = (int)local_4c;\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n          }\n          else {\n            piVar4[2] = (int)local_4c;\n            iVar8 = piVar4[4];\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n            local_4c = piVar7;\n            if (piVar7 != (int *)0x0) goto LAB_00191120;\n          }\n          local_4c = local_a8;\n          iVar8 = local_44[0];\n        }\nLAB_00191120:\n        local_44[0] = iVar8;\n        local_48 = 0;\n        *(undefined1 *)local_4c = 0;\n        if (local_4c != local_a8) {\n          *(int **)((int)piVar10 + -0x10) = local_4c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x191144;\n          FUN_001e6db0();\n        }\n      }" ({ "{") (expression_statement "ppuVar2 = *(undefined ***)(*piVar4 + 0x14);" (assignment_expression "ppuVar2 = *(undefined ***)(*piVar4 + 0x14)" (identifier "ppuVar2") (= "=") (pointer_expression "*(undefined ***)(*piVar4 + 0x14)" (* "*") (cast_expression "(undefined ***)(*piVar4 + 0x14)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(*piVar4 + 0x14)" (( "(") (binary_expression "*piVar4 + 0x14" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (ppuVar2 == local_90 + -0xc8a2c) {\n          iVar8 = piVar4[0xb];\n          local_4c = local_a8;\n          iVar5 = -1;\n          if (iVar8 != 0) {\n            *(int *)((int)piVar10 + -0x10) = iVar8;\n            *(undefined4 *)((int)piVar10 + -0x14) = 0x1910c6;\n            local_b0 = iVar8;\n            sVar6 = strlen(*(char **)((int)piVar10 + -0x10));\n            iVar5 = sVar6 + local_b0;\n            iVar8 = local_b0;\n          }\n          *(undefined4 *)((int)piVar10 + -4) = 0;\n          *(int *)((int)piVar10 + -8) = iVar5;\n          *(int *)((int)piVar10 + -0xc) = iVar8;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1910e0;\n          FUN_00050e40();\n        }\n        else {\n          *(int **)((int)piVar10 + -0xc) = piVar4;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1914bc;\n          (*(code *)ppuVar2)();\n          piVar10 = (int *)((int)piVar10 + -4);\n        }" (if "if") (parenthesized_expression "(ppuVar2 == local_90 + -0xc8a2c)" (( "(") (binary_expression "ppuVar2 == local_90 + -0xc8a2c" (identifier "ppuVar2") (== "==") (binary_expression "local_90 + -0xc8a2c" (identifier "local_90") (+ "+") (number_literal "-0xc8a2c"))) () ")")) (compound_statement "{\n          iVar8 = piVar4[0xb];\n          local_4c = local_a8;\n          iVar5 = -1;\n          if (iVar8 != 0) {\n            *(int *)((int)piVar10 + -0x10) = iVar8;\n            *(undefined4 *)((int)piVar10 + -0x14) = 0x1910c6;\n            local_b0 = iVar8;\n            sVar6 = strlen(*(char **)((int)piVar10 + -0x10));\n            iVar5 = sVar6 + local_b0;\n            iVar8 = local_b0;\n          }\n          *(undefined4 *)((int)piVar10 + -4) = 0;\n          *(int *)((int)piVar10 + -8) = iVar5;\n          *(int *)((int)piVar10 + -0xc) = iVar8;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1910e0;\n          FUN_00050e40();\n        }" ({ "{") (expression_statement "iVar8 = piVar4[0xb];" (assignment_expression "iVar8 = piVar4[0xb]" (identifier "iVar8") (= "=") (subscript_expression "piVar4[0xb]" (identifier "piVar4") ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (expression_statement "local_4c = local_a8;" (assignment_expression "local_4c = local_a8" (identifier "local_4c") (= "=") (identifier "local_a8")) (; ";")) (expression_statement "iVar5 = -1;" (assignment_expression "iVar5 = -1" (identifier "iVar5") (= "=") (number_literal "-1")) (; ";")) (if_statement "if (iVar8 != 0) {\n            *(int *)((int)piVar10 + -0x10) = iVar8;\n            *(undefined4 *)((int)piVar10 + -0x14) = 0x1910c6;\n            local_b0 = iVar8;\n            sVar6 = strlen(*(char **)((int)piVar10 + -0x10));\n            iVar5 = sVar6 + local_b0;\n            iVar8 = local_b0;\n          }" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            *(int *)((int)piVar10 + -0x10) = iVar8;\n            *(undefined4 *)((int)piVar10 + -0x14) = 0x1910c6;\n            local_b0 = iVar8;\n            sVar6 = strlen(*(char **)((int)piVar10 + -0x10));\n            iVar5 = sVar6 + local_b0;\n            iVar8 = local_b0;\n          }" ({ "{") (expression_statement "*(int *)((int)piVar10 + -0x10) = iVar8;" (assignment_expression "*(int *)((int)piVar10 + -0x10) = iVar8" (pointer_expression "*(int *)((int)piVar10 + -0x10)" (* "*") (cast_expression "(int *)((int)piVar10 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + -0x10)" (( "(") (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "iVar8")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x1910c6;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x1910c6" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + -0x14)" (( "(") (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1910c6")) (; ";")) (expression_statement "local_b0 = iVar8;" (assignment_expression "local_b0 = iVar8" (identifier "local_b0") (= "=") (identifier "iVar8")) (; ";")) (expression_statement "sVar6 = strlen(*(char **)((int)piVar10 + -0x10));" (assignment_expression "sVar6 = strlen(*(char **)((int)piVar10 + -0x10))" (identifier "sVar6") (= "=") (call_expression "strlen(*(char **)((int)piVar10 + -0x10))" (identifier "strlen") (argument_list "(*(char **)((int)piVar10 + -0x10))" (( "(") (pointer_expression "*(char **)((int)piVar10 + -0x10)" (* "*") (cast_expression "(char **)((int)piVar10 + -0x10)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar10 + -0x10)" (( "(") (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-0x10")) () ")")))) () ")")))) (; ";")) (expression_statement "iVar5 = sVar6 + local_b0;" (assignment_expression "iVar5 = sVar6 + local_b0" (identifier "iVar5") (= "=") (binary_expression "sVar6 + local_b0" (identifier "sVar6") (+ "+") (identifier "local_b0"))) (; ";")) (expression_statement "iVar8 = local_b0;" (assignment_expression "iVar8 = local_b0" (identifier "iVar8") (= "=") (identifier "local_b0")) (; ";")) (} "}"))) (expression_statement "*(undefined4 *)((int)piVar10 + -4) = 0;" (assignment_expression "*(undefined4 *)((int)piVar10 + -4) = 0" (pointer_expression "*(undefined4 *)((int)piVar10 + -4)" (* "*") (cast_expression "(undefined4 *)((int)piVar10 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + -4)" (( "(") (binary_expression "(int)piVar10 + -4" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int *)((int)piVar10 + -8) = iVar5;" (assignment_expression "*(int *)((int)piVar10 + -8) = iVar5" (pointer_expression "*(int *)((int)piVar10 + -8)" (* "*") (cast_expression "(int *)((int)piVar10 + -8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + -8)" (( "(") (binary_expression "(int)piVar10 + -8" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "*(int *)((int)piVar10 + -0xc) = iVar8;" (assignment_expression "*(int *)((int)piVar10 + -0xc) = iVar8" (pointer_expression "*(int *)((int)piVar10 + -0xc)" (* "*") (cast_expression "(int *)((int)piVar10 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + -0xc)" (( "(") (binary_expression "(int)piVar10 + -0xc" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "iVar8")) (; ";")) (expression_statement "*(int ***)((int)piVar10 + -0x10) = local_9c;" (assignment_expression "*(int ***)((int)piVar10 + -0x10) = local_9c" (pointer_expression "*(int ***)((int)piVar10 + -0x10)" (* "*") (cast_expression "(int ***)((int)piVar10 + -0x10)" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)piVar10 + -0x10)" (( "(") (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_9c")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x1910e0;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x1910e0" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + -0x14)" (( "(") (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1910e0")) (; ";")) (expression_statement "FUN_00050e40();" (call_expression "FUN_00050e40()" (identifier "FUN_00050e40") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n          *(int **)((int)piVar10 + -0xc) = piVar4;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1914bc;\n          (*(code *)ppuVar2)();\n          piVar10 = (int *)((int)piVar10 + -4);\n        }" (else "else") (compound_statement "{\n          *(int **)((int)piVar10 + -0xc) = piVar4;\n          *(int ***)((int)piVar10 + -0x10) = local_9c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1914bc;\n          (*(code *)ppuVar2)();\n          piVar10 = (int *)((int)piVar10 + -4);\n        }" ({ "{") (expression_statement "*(int **)((int)piVar10 + -0xc) = piVar4;" (assignment_expression "*(int **)((int)piVar10 + -0xc) = piVar4" (pointer_expression "*(int **)((int)piVar10 + -0xc)" (* "*") (cast_expression "(int **)((int)piVar10 + -0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar10 + -0xc)" (( "(") (binary_expression "(int)piVar10 + -0xc" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "piVar4")) (; ";")) (expression_statement "*(int ***)((int)piVar10 + -0x10) = local_9c;" (assignment_expression "*(int ***)((int)piVar10 + -0x10) = local_9c" (pointer_expression "*(int ***)((int)piVar10 + -0x10)" (* "*") (cast_expression "(int ***)((int)piVar10 + -0x10)" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)piVar10 + -0x10)" (( "(") (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_9c")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x1914bc;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x1914bc" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + -0x14)" (( "(") (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1914bc")) (; ";")) (expression_statement "(*(code *)ppuVar2)();" (call_expression "(*(code *)ppuVar2)()" (parenthesized_expression "(*(code *)ppuVar2)" (( "(") (pointer_expression "*(code *)ppuVar2" (* "*") (cast_expression "(code *)ppuVar2" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar2"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar10 = (int *)((int)piVar10 + -4);" (assignment_expression "piVar10 = (int *)((int)piVar10 + -4)" (identifier "piVar10") (= "=") (cast_expression "(int *)((int)piVar10 + -4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + -4)" (( "(") (binary_expression "(int)piVar10 + -4" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-4")) () ")")))) (; ";")) (} "}")))) (expression_statement "piVar7 = (int *)piVar4[2];" (assignment_expression "piVar7 = (int *)piVar4[2]" (identifier "piVar7") (= "=") (cast_expression "(int *)piVar4[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar4[2]" (identifier "piVar4") ([ "[") (number_literal "2") (] "]")))) (; ";")) (if_statement "if (local_4c == local_a8) {\n          if (local_48 != 0) {\n            if (local_48 == 1) {\n              *(undefined1 *)piVar7 = (undefined1)local_44[0];\n              piVar7 = (int *)piVar4[2];\n            }\n            else {\n              *(int *)((int)piVar10 + -8) = local_48;\n              *(int **)((int)piVar10 + -0xc) = local_a8;\n              *(int **)((int)piVar10 + -0x10) = piVar7;\n              *(undefined4 *)((int)piVar10 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8));\n              piVar7 = (int *)piVar4[2];\n            }\n          }\n          piVar4[3] = local_48;\n          *(undefined1 *)((int)piVar7 + local_48) = 0;\n          iVar8 = local_44[0];\n        }\n        else {\n          if (piVar7 == piVar4 + 4) {\n            piVar4[2] = (int)local_4c;\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n          }\n          else {\n            piVar4[2] = (int)local_4c;\n            iVar8 = piVar4[4];\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n            local_4c = piVar7;\n            if (piVar7 != (int *)0x0) goto LAB_00191120;\n          }\n          local_4c = local_a8;\n          iVar8 = local_44[0];\n        }" (if "if") (parenthesized_expression "(local_4c == local_a8)" (( "(") (binary_expression "local_4c == local_a8" (identifier "local_4c") (== "==") (identifier "local_a8")) () ")")) (compound_statement "{\n          if (local_48 != 0) {\n            if (local_48 == 1) {\n              *(undefined1 *)piVar7 = (undefined1)local_44[0];\n              piVar7 = (int *)piVar4[2];\n            }\n            else {\n              *(int *)((int)piVar10 + -8) = local_48;\n              *(int **)((int)piVar10 + -0xc) = local_a8;\n              *(int **)((int)piVar10 + -0x10) = piVar7;\n              *(undefined4 *)((int)piVar10 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8));\n              piVar7 = (int *)piVar4[2];\n            }\n          }\n          piVar4[3] = local_48;\n          *(undefined1 *)((int)piVar7 + local_48) = 0;\n          iVar8 = local_44[0];\n        }" ({ "{") (if_statement "if (local_48 != 0) {\n            if (local_48 == 1) {\n              *(undefined1 *)piVar7 = (undefined1)local_44[0];\n              piVar7 = (int *)piVar4[2];\n            }\n            else {\n              *(int *)((int)piVar10 + -8) = local_48;\n              *(int **)((int)piVar10 + -0xc) = local_a8;\n              *(int **)((int)piVar10 + -0x10) = piVar7;\n              *(undefined4 *)((int)piVar10 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8));\n              piVar7 = (int *)piVar4[2];\n            }\n          }" (if "if") (parenthesized_expression "(local_48 != 0)" (( "(") (binary_expression "local_48 != 0" (identifier "local_48") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            if (local_48 == 1) {\n              *(undefined1 *)piVar7 = (undefined1)local_44[0];\n              piVar7 = (int *)piVar4[2];\n            }\n            else {\n              *(int *)((int)piVar10 + -8) = local_48;\n              *(int **)((int)piVar10 + -0xc) = local_a8;\n              *(int **)((int)piVar10 + -0x10) = piVar7;\n              *(undefined4 *)((int)piVar10 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8));\n              piVar7 = (int *)piVar4[2];\n            }\n          }" ({ "{") (if_statement "if (local_48 == 1) {\n              *(undefined1 *)piVar7 = (undefined1)local_44[0];\n              piVar7 = (int *)piVar4[2];\n            }\n            else {\n              *(int *)((int)piVar10 + -8) = local_48;\n              *(int **)((int)piVar10 + -0xc) = local_a8;\n              *(int **)((int)piVar10 + -0x10) = piVar7;\n              *(undefined4 *)((int)piVar10 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8));\n              piVar7 = (int *)piVar4[2];\n            }" (if "if") (parenthesized_expression "(local_48 == 1)" (( "(") (binary_expression "local_48 == 1" (identifier "local_48") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n              *(undefined1 *)piVar7 = (undefined1)local_44[0];\n              piVar7 = (int *)piVar4[2];\n            }" ({ "{") (expression_statement "*(undefined1 *)piVar7 = (undefined1)local_44[0];" (assignment_expression "*(undefined1 *)piVar7 = (undefined1)local_44[0]" (pointer_expression "*(undefined1 *)piVar7" (* "*") (cast_expression "(undefined1 *)piVar7" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "piVar7"))) (= "=") (cast_expression "(undefined1)local_44[0]" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (subscript_expression "local_44[0]" (identifier "local_44") ([ "[") (number_literal "0") (] "]")))) (; ";")) (expression_statement "piVar7 = (int *)piVar4[2];" (assignment_expression "piVar7 = (int *)piVar4[2]" (identifier "piVar7") (= "=") (cast_expression "(int *)piVar4[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar4[2]" (identifier "piVar4") ([ "[") (number_literal "2") (] "]")))) (; ";")) (} "}")) (else_clause "else {\n              *(int *)((int)piVar10 + -8) = local_48;\n              *(int **)((int)piVar10 + -0xc) = local_a8;\n              *(int **)((int)piVar10 + -0x10) = piVar7;\n              *(undefined4 *)((int)piVar10 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8));\n              piVar7 = (int *)piVar4[2];\n            }" (else "else") (compound_statement "{\n              *(int *)((int)piVar10 + -8) = local_48;\n              *(int **)((int)piVar10 + -0xc) = local_a8;\n              *(int **)((int)piVar10 + -0x10) = piVar7;\n              *(undefined4 *)((int)piVar10 + -0x14) = 0x19146f;\n              memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8));\n              piVar7 = (int *)piVar4[2];\n            }" ({ "{") (expression_statement "*(int *)((int)piVar10 + -8) = local_48;" (assignment_expression "*(int *)((int)piVar10 + -8) = local_48" (pointer_expression "*(int *)((int)piVar10 + -8)" (* "*") (cast_expression "(int *)((int)piVar10 + -8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + -8)" (( "(") (binary_expression "(int)piVar10 + -8" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "local_48")) (; ";")) (expression_statement "*(int **)((int)piVar10 + -0xc) = local_a8;" (assignment_expression "*(int **)((int)piVar10 + -0xc) = local_a8" (pointer_expression "*(int **)((int)piVar10 + -0xc)" (* "*") (cast_expression "(int **)((int)piVar10 + -0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar10 + -0xc)" (( "(") (binary_expression "(int)piVar10 + -0xc" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_a8")) (; ";")) (expression_statement "*(int **)((int)piVar10 + -0x10) = piVar7;" (assignment_expression "*(int **)((int)piVar10 + -0x10) = piVar7" (pointer_expression "*(int **)((int)piVar10 + -0x10)" (* "*") (cast_expression "(int **)((int)piVar10 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar10 + -0x10)" (( "(") (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "piVar7")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x19146f;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x19146f" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + -0x14)" (( "(") (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x19146f")) (; ";")) (expression_statement "memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8));" (call_expression "memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8))" (identifier "memcpy") (argument_list "(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),\n                     *(size_t *)((int)piVar10 + -8))" (( "(") (pointer_expression "*(void **)((int)piVar10 + -0x10)" (* "*") (cast_expression "(void **)((int)piVar10 + -0x10)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar10 + -0x10)" (( "(") (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-0x10")) () ")")))) (, ",") (pointer_expression "*(void **)((int)piVar10 + -0xc)" (* "*") (cast_expression "(void **)((int)piVar10 + -0xc)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar10 + -0xc)" (( "(") (binary_expression "(int)piVar10 + -0xc" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-0xc")) () ")")))) (, ",") (pointer_expression "*(size_t *)((int)piVar10 + -8)" (* "*") (cast_expression "(size_t *)((int)piVar10 + -8)" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + -8)" (( "(") (binary_expression "(int)piVar10 + -8" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-8")) () ")")))) () ")"))) (; ";")) (expression_statement "piVar7 = (int *)piVar4[2];" (assignment_expression "piVar7 = (int *)piVar4[2]" (identifier "piVar7") (= "=") (cast_expression "(int *)piVar4[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar4[2]" (identifier "piVar4") ([ "[") (number_literal "2") (] "]")))) (; ";")) (} "}")))) (} "}"))) (expression_statement "piVar4[3] = local_48;" (assignment_expression "piVar4[3] = local_48" (subscript_expression "piVar4[3]" (identifier "piVar4") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_48")) (; ";")) (expression_statement "*(undefined1 *)((int)piVar7 + local_48) = 0;" (assignment_expression "*(undefined1 *)((int)piVar7 + local_48) = 0" (pointer_expression "*(undefined1 *)((int)piVar7 + local_48)" (* "*") (cast_expression "(undefined1 *)((int)piVar7 + local_48)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar7 + local_48)" (( "(") (binary_expression "(int)piVar7 + local_48" (cast_expression "(int)piVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar7")) (+ "+") (identifier "local_48")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar8 = local_44[0];" (assignment_expression "iVar8 = local_44[0]" (identifier "iVar8") (= "=") (subscript_expression "local_44[0]" (identifier "local_44") ([ "[") (number_literal "0") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n          if (piVar7 == piVar4 + 4) {\n            piVar4[2] = (int)local_4c;\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n          }\n          else {\n            piVar4[2] = (int)local_4c;\n            iVar8 = piVar4[4];\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n            local_4c = piVar7;\n            if (piVar7 != (int *)0x0) goto LAB_00191120;\n          }\n          local_4c = local_a8;\n          iVar8 = local_44[0];\n        }" (else "else") (compound_statement "{\n          if (piVar7 == piVar4 + 4) {\n            piVar4[2] = (int)local_4c;\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n          }\n          else {\n            piVar4[2] = (int)local_4c;\n            iVar8 = piVar4[4];\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n            local_4c = piVar7;\n            if (piVar7 != (int *)0x0) goto LAB_00191120;\n          }\n          local_4c = local_a8;\n          iVar8 = local_44[0];\n        }" ({ "{") (if_statement "if (piVar7 == piVar4 + 4) {\n            piVar4[2] = (int)local_4c;\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n          }\n          else {\n            piVar4[2] = (int)local_4c;\n            iVar8 = piVar4[4];\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n            local_4c = piVar7;\n            if (piVar7 != (int *)0x0) goto LAB_00191120;\n          }" (if "if") (parenthesized_expression "(piVar7 == piVar4 + 4)" (( "(") (binary_expression "piVar7 == piVar4 + 4" (identifier "piVar7") (== "==") (binary_expression "piVar4 + 4" (identifier "piVar4") (+ "+") (number_literal "4"))) () ")")) (compound_statement "{\n            piVar4[2] = (int)local_4c;\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n          }" ({ "{") (expression_statement "piVar4[2] = (int)local_4c;" (assignment_expression "piVar4[2] = (int)local_4c" (subscript_expression "piVar4[2]" (identifier "piVar4") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(int)local_4c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4c"))) (; ";")) (expression_statement "piVar4[3] = local_48;" (assignment_expression "piVar4[3] = local_48" (subscript_expression "piVar4[3]" (identifier "piVar4") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_48")) (; ";")) (expression_statement "piVar4[4] = local_44[0];" (assignment_expression "piVar4[4] = local_44[0]" (subscript_expression "piVar4[4]" (identifier "piVar4") ([ "[") (number_literal "4") (] "]")) (= "=") (subscript_expression "local_44[0]" (identifier "local_44") ([ "[") (number_literal "0") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n            piVar4[2] = (int)local_4c;\n            iVar8 = piVar4[4];\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n            local_4c = piVar7;\n            if (piVar7 != (int *)0x0) goto LAB_00191120;\n          }" (else "else") (compound_statement "{\n            piVar4[2] = (int)local_4c;\n            iVar8 = piVar4[4];\n            piVar4[3] = local_48;\n            piVar4[4] = local_44[0];\n            local_4c = piVar7;\n            if (piVar7 != (int *)0x0) goto LAB_00191120;\n          }" ({ "{") (expression_statement "piVar4[2] = (int)local_4c;" (assignment_expression "piVar4[2] = (int)local_4c" (subscript_expression "piVar4[2]" (identifier "piVar4") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(int)local_4c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4c"))) (; ";")) (expression_statement "iVar8 = piVar4[4];" (assignment_expression "iVar8 = piVar4[4]" (identifier "iVar8") (= "=") (subscript_expression "piVar4[4]" (identifier "piVar4") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "piVar4[3] = local_48;" (assignment_expression "piVar4[3] = local_48" (subscript_expression "piVar4[3]" (identifier "piVar4") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_48")) (; ";")) (expression_statement "piVar4[4] = local_44[0];" (assignment_expression "piVar4[4] = local_44[0]" (subscript_expression "piVar4[4]" (identifier "piVar4") ([ "[") (number_literal "4") (] "]")) (= "=") (subscript_expression "local_44[0]" (identifier "local_44") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "local_4c = piVar7;" (assignment_expression "local_4c = piVar7" (identifier "local_4c") (= "=") (identifier "piVar7")) (; ";")) (if_statement "if (piVar7 != (int *)0x0) goto LAB_00191120;" (if "if") (parenthesized_expression "(piVar7 != (int *)0x0)" (( "(") (binary_expression "piVar7 != (int *)0x0" (identifier "piVar7") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00191120;" (goto "goto") (statement_identifier "LAB_00191120") (; ";"))) (} "}")))) (expression_statement "local_4c = local_a8;" (assignment_expression "local_4c = local_a8" (identifier "local_4c") (= "=") (identifier "local_a8")) (; ";")) (expression_statement "iVar8 = local_44[0];" (assignment_expression "iVar8 = local_44[0]" (identifier "iVar8") (= "=") (subscript_expression "local_44[0]" (identifier "local_44") ([ "[") (number_literal "0") (] "]"))) (; ";")) (} "}")))) (labeled_statement "LAB_00191120:\n        local_44[0] = iVar8;" (statement_identifier "LAB_00191120") (: ":") (expression_statement "local_44[0] = iVar8;" (assignment_expression "local_44[0] = iVar8" (subscript_expression "local_44[0]" (identifier "local_44") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "iVar8")) (; ";"))) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" (identifier "local_48") (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)local_4c = 0;" (assignment_expression "*(undefined1 *)local_4c = 0" (pointer_expression "*(undefined1 *)local_4c" (* "*") (cast_expression "(undefined1 *)local_4c" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_4c"))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (local_4c != local_a8) {\n          *(int **)((int)piVar10 + -0x10) = local_4c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x191144;\n          FUN_001e6db0();\n        }" (if "if") (parenthesized_expression "(local_4c != local_a8)" (( "(") (binary_expression "local_4c != local_a8" (identifier "local_4c") (!= "!=") (identifier "local_a8")) () ")")) (compound_statement "{\n          *(int **)((int)piVar10 + -0x10) = local_4c;\n          *(undefined4 *)((int)piVar10 + -0x14) = 0x191144;\n          FUN_001e6db0();\n        }" ({ "{") (expression_statement "*(int **)((int)piVar10 + -0x10) = local_4c;" (assignment_expression "*(int **)((int)piVar10 + -0x10) = local_4c" (pointer_expression "*(int **)((int)piVar10 + -0x10)" (* "*") (cast_expression "(int **)((int)piVar10 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar10 + -0x10)" (( "(") (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_4c")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x191144;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x191144" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + -0x14)" (( "(") (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x191144")) (; ";")) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" (identifier "FUN_001e6db0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "*(int *)((int)piVar10 + -4) = piVar4[2];" (assignment_expression "*(int *)((int)piVar10 + -4) = piVar4[2]" (pointer_expression "*(int *)((int)piVar10 + -4)" (* "*") (cast_expression "(int *)((int)piVar10 + -4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + -4)" (( "(") (binary_expression "(int)piVar10 + -4" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-4")) () ")")))) (= "=") (subscript_expression "piVar4[2]" (identifier "piVar4") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar10 + -8) = param_2;" (assignment_expression "*(undefined4 *)((int)piVar10 + -8) = param_2" (pointer_expression "*(undefined4 *)((int)piVar10 + -8)" (* "*") (cast_expression "(undefined4 *)((int)piVar10 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + -8)" (( "(") (binary_expression "(int)piVar10 + -8" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(int *)((int)piVar10 + -0xc) = (int)local_90 + -0xf4943;" (assignment_expression "*(int *)((int)piVar10 + -0xc) = (int)local_90 + -0xf4943" (pointer_expression "*(int *)((int)piVar10 + -0xc)" (* "*") (cast_expression "(int *)((int)piVar10 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + -0xc)" (( "(") (binary_expression "(int)piVar10 + -0xc" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (binary_expression "(int)local_90 + -0xf4943" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (+ "+") (number_literal "-0xf4943"))) (; ";")) (expression_statement "*(int **)((int)piVar10 + -0x10) = local_98;" (assignment_expression "*(int **)((int)piVar10 + -0x10) = local_98" (pointer_expression "*(int **)((int)piVar10 + -0x10)" (* "*") (cast_expression "(int **)((int)piVar10 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar10 + -0x10)" (( "(") (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_98")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x191165;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x191165" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + -0x14)" (( "(") (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x191165")) (; ";")) (expression_statement "FUN_000653f0();" (call_expression "FUN_000653f0()" (identifier "FUN_000653f0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar9 = (undefined1 *)piVar10;" (assignment_expression "puVar9 = (undefined1 *)piVar10" (identifier "puVar9") (= "=") (cast_expression "(undefined1 *)piVar10" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "piVar10"))) (; ";")) (} "}"))) (expression_statement "*(int ***)(puVar9 + -0x10) = local_9c;" (assignment_expression "*(int ***)(puVar9 + -0x10) = local_9c" (pointer_expression "*(int ***)(puVar9 + -0x10)" (* "*") (cast_expression "(int ***)(puVar9 + -0x10)" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar9 + -0x10)" (( "(") (binary_expression "puVar9 + -0x10" (identifier "puVar9") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_9c")) (; ";")) (expression_statement "*(undefined4 *)(puVar9 + -0x14) = 0x19117c;" (assignment_expression "*(undefined4 *)(puVar9 + -0x14) = 0x19117c" (pointer_expression "*(undefined4 *)(puVar9 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar9 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x14)" (( "(") (binary_expression "puVar9 + -0x14" (identifier "puVar9") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x19117c")) (; ";")) (expression_statement "FUN_0018fff0();" (call_expression "FUN_0018fff0()" (identifier "FUN_0018fff0") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {\n      *(int ***)(puVar9 + -0x10) = local_9c;\n      *(undefined4 *)(puVar9 + -0x14) = 0x1911a8;\n      thunk_FUN_00190010();\n    }" (if "if") (parenthesized_expression "((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0))" (( "(") (binary_expression "(*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)" (parenthesized_expression "(*(int *)(*local_94 + 8) != 0)" (( "(") (binary_expression "*(int *)(*local_94 + 8) != 0" (pointer_expression "*(int *)(*local_94 + 8)" (* "*") (cast_expression "(int *)(*local_94 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*local_94 + 8)" (( "(") (binary_expression "*local_94 + 8" (pointer_expression "*local_94" (* "*") (identifier "local_94")) (+ "+") (number_literal "8")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(((*local_94)[0x14] & 1) != 0)" (( "(") (binary_expression "((*local_94)[0x14] & 1) != 0" (parenthesized_expression "((*local_94)[0x14] & 1)" (( "(") (binary_expression "(*local_94)[0x14] & 1" (subscript_expression "(*local_94)[0x14]" (parenthesized_expression "(*local_94)" (( "(") (pointer_expression "*local_94" (* "*") (identifier "local_94")) () ")")) ([ "[") (number_literal "0x14") (] "]")) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      *(int ***)(puVar9 + -0x10) = local_9c;\n      *(undefined4 *)(puVar9 + -0x14) = 0x1911a8;\n      thunk_FUN_00190010();\n    }" ({ "{") (expression_statement "*(int ***)(puVar9 + -0x10) = local_9c;" (assignment_expression "*(int ***)(puVar9 + -0x10) = local_9c" (pointer_expression "*(int ***)(puVar9 + -0x10)" (* "*") (cast_expression "(int ***)(puVar9 + -0x10)" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar9 + -0x10)" (( "(") (binary_expression "puVar9 + -0x10" (identifier "puVar9") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_9c")) (; ";")) (expression_statement "*(undefined4 *)(puVar9 + -0x14) = 0x1911a8;" (assignment_expression "*(undefined4 *)(puVar9 + -0x14) = 0x1911a8" (pointer_expression "*(undefined4 *)(puVar9 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar9 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x14)" (( "(") (binary_expression "puVar9 + -0x14" (identifier "puVar9") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1911a8")) (; ";")) (expression_statement "thunk_FUN_00190010();" (call_expression "thunk_FUN_00190010()" (identifier "thunk_FUN_00190010") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "ppuVar2 = *(undefined ***)(*piVar4 + 0x10);" (assignment_expression "ppuVar2 = *(undefined ***)(*piVar4 + 0x10)" (identifier "ppuVar2") (= "=") (pointer_expression "*(undefined ***)(*piVar4 + 0x10)" (* "*") (cast_expression "(undefined ***)(*piVar4 + 0x10)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(*piVar4 + 0x10)" (( "(") (binary_expression "*piVar4 + 0x10" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if (ppuVar2 == local_a4) {\n      piVar10 = (int *)piVar4[9];\n      iVar8 = *piVar10;\n      *(int **)(puVar9 + -8) = piVar4;\n      *(undefined4 **)(puVar9 + -0xc) = param_1;\n      *(int **)(puVar9 + -0x10) = piVar10;\n      pcVar3 = *(code **)(iVar8 + 8);\n      *(undefined4 *)(puVar9 + -0x14) = 0x1911ca;\n      (*pcVar3)();\n    }\n    else {\n      *(undefined4 **)(puVar9 + -0xc) = param_1;\n      *(int **)(puVar9 + -0x10) = piVar4;\n      *(undefined4 *)(puVar9 + -0x14) = 0x1913ff;\n      (*(code *)ppuVar2)();\n    }" (if "if") (parenthesized_expression "(ppuVar2 == local_a4)" (( "(") (binary_expression "ppuVar2 == local_a4" (identifier "ppuVar2") (== "==") (identifier "local_a4")) () ")")) (compound_statement "{\n      piVar10 = (int *)piVar4[9];\n      iVar8 = *piVar10;\n      *(int **)(puVar9 + -8) = piVar4;\n      *(undefined4 **)(puVar9 + -0xc) = param_1;\n      *(int **)(puVar9 + -0x10) = piVar10;\n      pcVar3 = *(code **)(iVar8 + 8);\n      *(undefined4 *)(puVar9 + -0x14) = 0x1911ca;\n      (*pcVar3)();\n    }" ({ "{") (expression_statement "piVar10 = (int *)piVar4[9];" (assignment_expression "piVar10 = (int *)piVar4[9]" (identifier "piVar10") (= "=") (cast_expression "(int *)piVar4[9]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar4[9]" (identifier "piVar4") ([ "[") (number_literal "9") (] "]")))) (; ";")) (expression_statement "iVar8 = *piVar10;" (assignment_expression "iVar8 = *piVar10" (identifier "iVar8") (= "=") (pointer_expression "*piVar10" (* "*") (identifier "piVar10"))) (; ";")) (expression_statement "*(int **)(puVar9 + -8) = piVar4;" (assignment_expression "*(int **)(puVar9 + -8) = piVar4" (pointer_expression "*(int **)(puVar9 + -8)" (* "*") (cast_expression "(int **)(puVar9 + -8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -8)" (( "(") (binary_expression "puVar9 + -8" (identifier "puVar9") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "piVar4")) (; ";")) (expression_statement "*(undefined4 **)(puVar9 + -0xc) = param_1;" (assignment_expression "*(undefined4 **)(puVar9 + -0xc) = param_1" (pointer_expression "*(undefined4 **)(puVar9 + -0xc)" (* "*") (cast_expression "(undefined4 **)(puVar9 + -0xc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0xc)" (( "(") (binary_expression "puVar9 + -0xc" (identifier "puVar9") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (expression_statement "*(int **)(puVar9 + -0x10) = piVar10;" (assignment_expression "*(int **)(puVar9 + -0x10) = piVar10" (pointer_expression "*(int **)(puVar9 + -0x10)" (* "*") (cast_expression "(int **)(puVar9 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0x10)" (( "(") (binary_expression "puVar9 + -0x10" (identifier "puVar9") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "piVar10")) (; ";")) (expression_statement "pcVar3 = *(code **)(iVar8 + 8);" (assignment_expression "pcVar3 = *(code **)(iVar8 + 8)" (identifier "pcVar3") (= "=") (pointer_expression "*(code **)(iVar8 + 8)" (* "*") (cast_expression "(code **)(iVar8 + 8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar8 + 8)" (( "(") (binary_expression "iVar8 + 8" (identifier "iVar8") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar9 + -0x14) = 0x1911ca;" (assignment_expression "*(undefined4 *)(puVar9 + -0x14) = 0x1911ca" (pointer_expression "*(undefined4 *)(puVar9 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar9 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x14)" (( "(") (binary_expression "puVar9 + -0x14" (identifier "puVar9") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1911ca")) (; ";")) (expression_statement "(*pcVar3)();" (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" (( "(") (pointer_expression "*pcVar3" (* "*") (identifier "pcVar3")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n      *(undefined4 **)(puVar9 + -0xc) = param_1;\n      *(int **)(puVar9 + -0x10) = piVar4;\n      *(undefined4 *)(puVar9 + -0x14) = 0x1913ff;\n      (*(code *)ppuVar2)();\n    }" (else "else") (compound_statement "{\n      *(undefined4 **)(puVar9 + -0xc) = param_1;\n      *(int **)(puVar9 + -0x10) = piVar4;\n      *(undefined4 *)(puVar9 + -0x14) = 0x1913ff;\n      (*(code *)ppuVar2)();\n    }" ({ "{") (expression_statement "*(undefined4 **)(puVar9 + -0xc) = param_1;" (assignment_expression "*(undefined4 **)(puVar9 + -0xc) = param_1" (pointer_expression "*(undefined4 **)(puVar9 + -0xc)" (* "*") (cast_expression "(undefined4 **)(puVar9 + -0xc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0xc)" (( "(") (binary_expression "puVar9 + -0xc" (identifier "puVar9") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (expression_statement "*(int **)(puVar9 + -0x10) = piVar4;" (assignment_expression "*(int **)(puVar9 + -0x10) = piVar4" (pointer_expression "*(int **)(puVar9 + -0x10)" (* "*") (cast_expression "(int **)(puVar9 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0x10)" (( "(") (binary_expression "puVar9 + -0x10" (identifier "puVar9") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "piVar4")) (; ";")) (expression_statement "*(undefined4 *)(puVar9 + -0x14) = 0x1913ff;" (assignment_expression "*(undefined4 *)(puVar9 + -0x14) = 0x1913ff" (pointer_expression "*(undefined4 *)(puVar9 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar9 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x14)" (( "(") (binary_expression "puVar9 + -0x14" (identifier "puVar9") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1913ff")) (; ";")) (expression_statement "(*(code *)ppuVar2)();" (call_expression "(*(code *)ppuVar2)()" (parenthesized_expression "(*(code *)ppuVar2)" (( "(") (pointer_expression "*(code *)ppuVar2" (* "*") (cast_expression "(code *)ppuVar2" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar2"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "piVar10 = (int *)puVar9;" (assignment_expression "piVar10 = (int *)puVar9" (identifier "piVar10") (= "=") (cast_expression "(int *)puVar9" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar9"))) (; ";")) (if_statement "if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {\n      *(int ***)(puVar9 + -0xc) = local_9c;\n      *(int **)(puVar9 + -0x10) = &local_84;\n      *(undefined4 *)(puVar9 + -0x14) = 0x191202;\n      FUN_001900d0();\n      puVar11 = puVar9 + -4;\n      puVar1 = (undefined4 *)*local_94;\n      piVar10 = (int *)(puVar9 + -4);\n      if ((puVar1[2] != 0) && (piVar10 = (int *)(puVar9 + -4), (*(byte *)(puVar1 + 5) & 1) != 0)) {\n        local_b8 = *puVar1;\n        local_bc = local_7c / 1000;\n        local_98 = (int *)((local_7c % 1000) * 1000);\n        local_c0 = local_80 / 1000;\n        local_b0 = (local_80 % 1000) * 1000;\n        local_c4 = local_84 / 1000;\n        local_b4 = (local_84 % 1000) * 1000;\n        if (piVar4[3] == 0) {\n          ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n          if (ppuVar2 == local_90 + -0xc8a2c) {\n            iVar8 = piVar4[0xb];\n            local_c8 = local_5c;\n            iVar5 = -1;\n            local_64 = local_c8;\n            if (iVar8 != 0) {\n              *(int *)(puVar9 + -0x14) = iVar8;\n              *(undefined4 *)(puVar9 + -0x18) = 0x1912ff;\n              local_cc = iVar8;\n              sVar6 = strlen(*(char **)(puVar9 + -0x14));\n              iVar5 = sVar6 + local_cc;\n              iVar8 = local_cc;\n            }\n            puVar11 = puVar9 + -4;\n            *(undefined4 *)(puVar9 + -8) = 0;\n            *(int *)(puVar9 + -0xc) = iVar5;\n            *(int *)(puVar9 + -0x10) = iVar8;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191317;\n            FUN_00050e40();\n          }\n          else {\n            *(int **)(puVar9 + -0x10) = piVar4;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191579;\n            (*(code *)ppuVar2)();\n            local_c8 = local_5c;\n            puVar11 = puVar9 + -8;\n          }\n          piVar10 = (int *)piVar4[2];\n          if (local_64 == local_c8) {\n            if (local_60 != 0) {\n              if (local_60 == 1) {\n                *(undefined1 *)piVar10 = (undefined1)local_5c[0];\n                piVar10 = (int *)piVar4[2];\n              }\n              else {\n                *(int *)(puVar11 + -8) = local_60;\n                *(int **)(puVar11 + -0xc) = local_c8;\n                *(int **)(puVar11 + -0x10) = piVar10;\n                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;\n                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));\n                piVar10 = (int *)piVar4[2];\n              }\n            }\n            piVar4[3] = local_60;\n            *(undefined1 *)((int)piVar10 + local_60) = 0;\n            piVar10 = local_64;\n            iVar8 = local_5c[0];\n          }\n          else {\n            if (piVar10 == piVar4 + 4) {\n              piVar4[2] = (int)local_64;\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n            }\n            else {\n              piVar4[2] = (int)local_64;\n              iVar8 = piVar4[4];\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n              local_64 = piVar10;\n              if (piVar10 != (int *)0x0) goto LAB_00191357;\n            }\n            local_64 = local_c8;\n            local_c8 = local_5c;\n            piVar10 = local_c8;\n            iVar8 = local_5c[0];\n          }\nLAB_00191357:\n          local_5c[0] = iVar8;\n          local_60 = 0;\n          *(undefined1 *)piVar10 = 0;\n          if (local_64 != local_c8) {\n            *(int **)(puVar11 + -0x10) = local_64;\n            *(undefined4 *)(puVar11 + -0x14) = 0x19137b;\n            FUN_001e6db0();\n          }\n        }\n        *(int **)(puVar11 + -0xc) = local_98;\n        *(int *)(puVar11 + -0x10) = local_bc;\n        *(int *)(puVar11 + -0x14) = local_b0;\n        *(int *)(puVar11 + -0x18) = local_c0;\n        *(int *)(puVar11 + -0x1c) = local_b4;\n        *(int *)(puVar11 + -0x20) = local_c4;\n        *(int *)(puVar11 + -0x24) = piVar4[2];\n        *(undefined4 *)(puVar11 + -0x28) = param_2;\n        *(undefined ***)(puVar11 + -0x2c) = local_90 + -0x3d24b;\n        *(undefined4 *)(puVar11 + -0x30) = local_b8;\n        *(undefined4 *)(puVar11 + -0x34) = 0x1913c3;\n        FUN_000653f0();\n        piVar10 = (int *)puVar11;\n      }\n    }" (if "if") (parenthesized_expression "((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0))" (( "(") (binary_expression "(*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)" (parenthesized_expression "(*(int *)(*local_94 + 8) != 0)" (( "(") (binary_expression "*(int *)(*local_94 + 8) != 0" (pointer_expression "*(int *)(*local_94 + 8)" (* "*") (cast_expression "(int *)(*local_94 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*local_94 + 8)" (( "(") (binary_expression "*local_94 + 8" (pointer_expression "*local_94" (* "*") (identifier "local_94")) (+ "+") (number_literal "8")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(((*local_94)[0x14] & 1) != 0)" (( "(") (binary_expression "((*local_94)[0x14] & 1) != 0" (parenthesized_expression "((*local_94)[0x14] & 1)" (( "(") (binary_expression "(*local_94)[0x14] & 1" (subscript_expression "(*local_94)[0x14]" (parenthesized_expression "(*local_94)" (( "(") (pointer_expression "*local_94" (* "*") (identifier "local_94")) () ")")) ([ "[") (number_literal "0x14") (] "]")) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      *(int ***)(puVar9 + -0xc) = local_9c;\n      *(int **)(puVar9 + -0x10) = &local_84;\n      *(undefined4 *)(puVar9 + -0x14) = 0x191202;\n      FUN_001900d0();\n      puVar11 = puVar9 + -4;\n      puVar1 = (undefined4 *)*local_94;\n      piVar10 = (int *)(puVar9 + -4);\n      if ((puVar1[2] != 0) && (piVar10 = (int *)(puVar9 + -4), (*(byte *)(puVar1 + 5) & 1) != 0)) {\n        local_b8 = *puVar1;\n        local_bc = local_7c / 1000;\n        local_98 = (int *)((local_7c % 1000) * 1000);\n        local_c0 = local_80 / 1000;\n        local_b0 = (local_80 % 1000) * 1000;\n        local_c4 = local_84 / 1000;\n        local_b4 = (local_84 % 1000) * 1000;\n        if (piVar4[3] == 0) {\n          ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n          if (ppuVar2 == local_90 + -0xc8a2c) {\n            iVar8 = piVar4[0xb];\n            local_c8 = local_5c;\n            iVar5 = -1;\n            local_64 = local_c8;\n            if (iVar8 != 0) {\n              *(int *)(puVar9 + -0x14) = iVar8;\n              *(undefined4 *)(puVar9 + -0x18) = 0x1912ff;\n              local_cc = iVar8;\n              sVar6 = strlen(*(char **)(puVar9 + -0x14));\n              iVar5 = sVar6 + local_cc;\n              iVar8 = local_cc;\n            }\n            puVar11 = puVar9 + -4;\n            *(undefined4 *)(puVar9 + -8) = 0;\n            *(int *)(puVar9 + -0xc) = iVar5;\n            *(int *)(puVar9 + -0x10) = iVar8;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191317;\n            FUN_00050e40();\n          }\n          else {\n            *(int **)(puVar9 + -0x10) = piVar4;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191579;\n            (*(code *)ppuVar2)();\n            local_c8 = local_5c;\n            puVar11 = puVar9 + -8;\n          }\n          piVar10 = (int *)piVar4[2];\n          if (local_64 == local_c8) {\n            if (local_60 != 0) {\n              if (local_60 == 1) {\n                *(undefined1 *)piVar10 = (undefined1)local_5c[0];\n                piVar10 = (int *)piVar4[2];\n              }\n              else {\n                *(int *)(puVar11 + -8) = local_60;\n                *(int **)(puVar11 + -0xc) = local_c8;\n                *(int **)(puVar11 + -0x10) = piVar10;\n                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;\n                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));\n                piVar10 = (int *)piVar4[2];\n              }\n            }\n            piVar4[3] = local_60;\n            *(undefined1 *)((int)piVar10 + local_60) = 0;\n            piVar10 = local_64;\n            iVar8 = local_5c[0];\n          }\n          else {\n            if (piVar10 == piVar4 + 4) {\n              piVar4[2] = (int)local_64;\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n            }\n            else {\n              piVar4[2] = (int)local_64;\n              iVar8 = piVar4[4];\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n              local_64 = piVar10;\n              if (piVar10 != (int *)0x0) goto LAB_00191357;\n            }\n            local_64 = local_c8;\n            local_c8 = local_5c;\n            piVar10 = local_c8;\n            iVar8 = local_5c[0];\n          }\nLAB_00191357:\n          local_5c[0] = iVar8;\n          local_60 = 0;\n          *(undefined1 *)piVar10 = 0;\n          if (local_64 != local_c8) {\n            *(int **)(puVar11 + -0x10) = local_64;\n            *(undefined4 *)(puVar11 + -0x14) = 0x19137b;\n            FUN_001e6db0();\n          }\n        }\n        *(int **)(puVar11 + -0xc) = local_98;\n        *(int *)(puVar11 + -0x10) = local_bc;\n        *(int *)(puVar11 + -0x14) = local_b0;\n        *(int *)(puVar11 + -0x18) = local_c0;\n        *(int *)(puVar11 + -0x1c) = local_b4;\n        *(int *)(puVar11 + -0x20) = local_c4;\n        *(int *)(puVar11 + -0x24) = piVar4[2];\n        *(undefined4 *)(puVar11 + -0x28) = param_2;\n        *(undefined ***)(puVar11 + -0x2c) = local_90 + -0x3d24b;\n        *(undefined4 *)(puVar11 + -0x30) = local_b8;\n        *(undefined4 *)(puVar11 + -0x34) = 0x1913c3;\n        FUN_000653f0();\n        piVar10 = (int *)puVar11;\n      }\n    }" ({ "{") (expression_statement "*(int ***)(puVar9 + -0xc) = local_9c;" (assignment_expression "*(int ***)(puVar9 + -0xc) = local_9c" (pointer_expression "*(int ***)(puVar9 + -0xc)" (* "*") (cast_expression "(int ***)(puVar9 + -0xc)" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar9 + -0xc)" (( "(") (binary_expression "puVar9 + -0xc" (identifier "puVar9") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_9c")) (; ";")) (expression_statement "*(int **)(puVar9 + -0x10) = &local_84;" (assignment_expression "*(int **)(puVar9 + -0x10) = &local_84" (pointer_expression "*(int **)(puVar9 + -0x10)" (* "*") (cast_expression "(int **)(puVar9 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0x10)" (( "(") (binary_expression "puVar9 + -0x10" (identifier "puVar9") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "&local_84" (& "&") (identifier "local_84"))) (; ";")) (expression_statement "*(undefined4 *)(puVar9 + -0x14) = 0x191202;" (assignment_expression "*(undefined4 *)(puVar9 + -0x14) = 0x191202" (pointer_expression "*(undefined4 *)(puVar9 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar9 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x14)" (( "(") (binary_expression "puVar9 + -0x14" (identifier "puVar9") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x191202")) (; ";")) (expression_statement "FUN_001900d0();" (call_expression "FUN_001900d0()" (identifier "FUN_001900d0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar11 = puVar9 + -4;" (assignment_expression "puVar11 = puVar9 + -4" (identifier "puVar11") (= "=") (binary_expression "puVar9 + -4" (identifier "puVar9") (+ "+") (number_literal "-4"))) (; ";")) (expression_statement "puVar1 = (undefined4 *)*local_94;" (assignment_expression "puVar1 = (undefined4 *)*local_94" (identifier "puVar1") (= "=") (cast_expression "(undefined4 *)*local_94" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*local_94" (* "*") (identifier "local_94")))) (; ";")) (expression_statement "piVar10 = (int *)(puVar9 + -4);" (assignment_expression "piVar10 = (int *)(puVar9 + -4)" (identifier "piVar10") (= "=") (cast_expression "(int *)(puVar9 + -4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -4)" (( "(") (binary_expression "puVar9 + -4" (identifier "puVar9") (+ "+") (number_literal "-4")) () ")")))) (; ";")) (if_statement "if ((puVar1[2] != 0) && (piVar10 = (int *)(puVar9 + -4), (*(byte *)(puVar1 + 5) & 1) != 0)) {\n        local_b8 = *puVar1;\n        local_bc = local_7c / 1000;\n        local_98 = (int *)((local_7c % 1000) * 1000);\n        local_c0 = local_80 / 1000;\n        local_b0 = (local_80 % 1000) * 1000;\n        local_c4 = local_84 / 1000;\n        local_b4 = (local_84 % 1000) * 1000;\n        if (piVar4[3] == 0) {\n          ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n          if (ppuVar2 == local_90 + -0xc8a2c) {\n            iVar8 = piVar4[0xb];\n            local_c8 = local_5c;\n            iVar5 = -1;\n            local_64 = local_c8;\n            if (iVar8 != 0) {\n              *(int *)(puVar9 + -0x14) = iVar8;\n              *(undefined4 *)(puVar9 + -0x18) = 0x1912ff;\n              local_cc = iVar8;\n              sVar6 = strlen(*(char **)(puVar9 + -0x14));\n              iVar5 = sVar6 + local_cc;\n              iVar8 = local_cc;\n            }\n            puVar11 = puVar9 + -4;\n            *(undefined4 *)(puVar9 + -8) = 0;\n            *(int *)(puVar9 + -0xc) = iVar5;\n            *(int *)(puVar9 + -0x10) = iVar8;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191317;\n            FUN_00050e40();\n          }\n          else {\n            *(int **)(puVar9 + -0x10) = piVar4;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191579;\n            (*(code *)ppuVar2)();\n            local_c8 = local_5c;\n            puVar11 = puVar9 + -8;\n          }\n          piVar10 = (int *)piVar4[2];\n          if (local_64 == local_c8) {\n            if (local_60 != 0) {\n              if (local_60 == 1) {\n                *(undefined1 *)piVar10 = (undefined1)local_5c[0];\n                piVar10 = (int *)piVar4[2];\n              }\n              else {\n                *(int *)(puVar11 + -8) = local_60;\n                *(int **)(puVar11 + -0xc) = local_c8;\n                *(int **)(puVar11 + -0x10) = piVar10;\n                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;\n                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));\n                piVar10 = (int *)piVar4[2];\n              }\n            }\n            piVar4[3] = local_60;\n            *(undefined1 *)((int)piVar10 + local_60) = 0;\n            piVar10 = local_64;\n            iVar8 = local_5c[0];\n          }\n          else {\n            if (piVar10 == piVar4 + 4) {\n              piVar4[2] = (int)local_64;\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n            }\n            else {\n              piVar4[2] = (int)local_64;\n              iVar8 = piVar4[4];\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n              local_64 = piVar10;\n              if (piVar10 != (int *)0x0) goto LAB_00191357;\n            }\n            local_64 = local_c8;\n            local_c8 = local_5c;\n            piVar10 = local_c8;\n            iVar8 = local_5c[0];\n          }\nLAB_00191357:\n          local_5c[0] = iVar8;\n          local_60 = 0;\n          *(undefined1 *)piVar10 = 0;\n          if (local_64 != local_c8) {\n            *(int **)(puVar11 + -0x10) = local_64;\n            *(undefined4 *)(puVar11 + -0x14) = 0x19137b;\n            FUN_001e6db0();\n          }\n        }\n        *(int **)(puVar11 + -0xc) = local_98;\n        *(int *)(puVar11 + -0x10) = local_bc;\n        *(int *)(puVar11 + -0x14) = local_b0;\n        *(int *)(puVar11 + -0x18) = local_c0;\n        *(int *)(puVar11 + -0x1c) = local_b4;\n        *(int *)(puVar11 + -0x20) = local_c4;\n        *(int *)(puVar11 + -0x24) = piVar4[2];\n        *(undefined4 *)(puVar11 + -0x28) = param_2;\n        *(undefined ***)(puVar11 + -0x2c) = local_90 + -0x3d24b;\n        *(undefined4 *)(puVar11 + -0x30) = local_b8;\n        *(undefined4 *)(puVar11 + -0x34) = 0x1913c3;\n        FUN_000653f0();\n        piVar10 = (int *)puVar11;\n      }" (if "if") (parenthesized_expression "((puVar1[2] != 0) && (piVar10 = (int *)(puVar9 + -4), (*(byte *)(puVar1 + 5) & 1) != 0))" (( "(") (binary_expression "(puVar1[2] != 0) && (piVar10 = (int *)(puVar9 + -4), (*(byte *)(puVar1 + 5) & 1) != 0)" (parenthesized_expression "(puVar1[2] != 0)" (( "(") (binary_expression "puVar1[2] != 0" (subscript_expression "puVar1[2]" (identifier "puVar1") ([ "[") (number_literal "2") (] "]")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(piVar10 = (int *)(puVar9 + -4), (*(byte *)(puVar1 + 5) & 1) != 0)" (( "(") (comma_expression "piVar10 = (int *)(puVar9 + -4), (*(byte *)(puVar1 + 5) & 1) != 0" (assignment_expression "piVar10 = (int *)(puVar9 + -4)" (identifier "piVar10") (= "=") (cast_expression "(int *)(puVar9 + -4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -4)" (( "(") (binary_expression "puVar9 + -4" (identifier "puVar9") (+ "+") (number_literal "-4")) () ")")))) (, ",") (binary_expression "(*(byte *)(puVar1 + 5) & 1) != 0" (parenthesized_expression "(*(byte *)(puVar1 + 5) & 1)" (( "(") (binary_expression "*(byte *)(puVar1 + 5) & 1" (pointer_expression "*(byte *)(puVar1 + 5)" (* "*") (cast_expression "(byte *)(puVar1 + 5)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + 5)" (( "(") (binary_expression "puVar1 + 5" (identifier "puVar1") (+ "+") (number_literal "5")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n        local_b8 = *puVar1;\n        local_bc = local_7c / 1000;\n        local_98 = (int *)((local_7c % 1000) * 1000);\n        local_c0 = local_80 / 1000;\n        local_b0 = (local_80 % 1000) * 1000;\n        local_c4 = local_84 / 1000;\n        local_b4 = (local_84 % 1000) * 1000;\n        if (piVar4[3] == 0) {\n          ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n          if (ppuVar2 == local_90 + -0xc8a2c) {\n            iVar8 = piVar4[0xb];\n            local_c8 = local_5c;\n            iVar5 = -1;\n            local_64 = local_c8;\n            if (iVar8 != 0) {\n              *(int *)(puVar9 + -0x14) = iVar8;\n              *(undefined4 *)(puVar9 + -0x18) = 0x1912ff;\n              local_cc = iVar8;\n              sVar6 = strlen(*(char **)(puVar9 + -0x14));\n              iVar5 = sVar6 + local_cc;\n              iVar8 = local_cc;\n            }\n            puVar11 = puVar9 + -4;\n            *(undefined4 *)(puVar9 + -8) = 0;\n            *(int *)(puVar9 + -0xc) = iVar5;\n            *(int *)(puVar9 + -0x10) = iVar8;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191317;\n            FUN_00050e40();\n          }\n          else {\n            *(int **)(puVar9 + -0x10) = piVar4;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191579;\n            (*(code *)ppuVar2)();\n            local_c8 = local_5c;\n            puVar11 = puVar9 + -8;\n          }\n          piVar10 = (int *)piVar4[2];\n          if (local_64 == local_c8) {\n            if (local_60 != 0) {\n              if (local_60 == 1) {\n                *(undefined1 *)piVar10 = (undefined1)local_5c[0];\n                piVar10 = (int *)piVar4[2];\n              }\n              else {\n                *(int *)(puVar11 + -8) = local_60;\n                *(int **)(puVar11 + -0xc) = local_c8;\n                *(int **)(puVar11 + -0x10) = piVar10;\n                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;\n                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));\n                piVar10 = (int *)piVar4[2];\n              }\n            }\n            piVar4[3] = local_60;\n            *(undefined1 *)((int)piVar10 + local_60) = 0;\n            piVar10 = local_64;\n            iVar8 = local_5c[0];\n          }\n          else {\n            if (piVar10 == piVar4 + 4) {\n              piVar4[2] = (int)local_64;\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n            }\n            else {\n              piVar4[2] = (int)local_64;\n              iVar8 = piVar4[4];\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n              local_64 = piVar10;\n              if (piVar10 != (int *)0x0) goto LAB_00191357;\n            }\n            local_64 = local_c8;\n            local_c8 = local_5c;\n            piVar10 = local_c8;\n            iVar8 = local_5c[0];\n          }\nLAB_00191357:\n          local_5c[0] = iVar8;\n          local_60 = 0;\n          *(undefined1 *)piVar10 = 0;\n          if (local_64 != local_c8) {\n            *(int **)(puVar11 + -0x10) = local_64;\n            *(undefined4 *)(puVar11 + -0x14) = 0x19137b;\n            FUN_001e6db0();\n          }\n        }\n        *(int **)(puVar11 + -0xc) = local_98;\n        *(int *)(puVar11 + -0x10) = local_bc;\n        *(int *)(puVar11 + -0x14) = local_b0;\n        *(int *)(puVar11 + -0x18) = local_c0;\n        *(int *)(puVar11 + -0x1c) = local_b4;\n        *(int *)(puVar11 + -0x20) = local_c4;\n        *(int *)(puVar11 + -0x24) = piVar4[2];\n        *(undefined4 *)(puVar11 + -0x28) = param_2;\n        *(undefined ***)(puVar11 + -0x2c) = local_90 + -0x3d24b;\n        *(undefined4 *)(puVar11 + -0x30) = local_b8;\n        *(undefined4 *)(puVar11 + -0x34) = 0x1913c3;\n        FUN_000653f0();\n        piVar10 = (int *)puVar11;\n      }" ({ "{") (expression_statement "local_b8 = *puVar1;" (assignment_expression "local_b8 = *puVar1" (identifier "local_b8") (= "=") (pointer_expression "*puVar1" (* "*") (identifier "puVar1"))) (; ";")) (expression_statement "local_bc = local_7c / 1000;" (assignment_expression "local_bc = local_7c / 1000" (identifier "local_bc") (= "=") (binary_expression "local_7c / 1000" (identifier "local_7c") (/ "/") (number_literal "1000"))) (; ";")) (expression_statement "local_98 = (int *)((local_7c % 1000) * 1000);" (assignment_expression "local_98 = (int *)((local_7c % 1000) * 1000)" (identifier "local_98") (= "=") (cast_expression "(int *)((local_7c % 1000) * 1000)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((local_7c % 1000) * 1000)" (( "(") (binary_expression "(local_7c % 1000) * 1000" (parenthesized_expression "(local_7c % 1000)" (( "(") (binary_expression "local_7c % 1000" (identifier "local_7c") (% "%") (number_literal "1000")) () ")")) (* "*") (number_literal "1000")) () ")")))) (; ";")) (expression_statement "local_c0 = local_80 / 1000;" (assignment_expression "local_c0 = local_80 / 1000" (identifier "local_c0") (= "=") (binary_expression "local_80 / 1000" (identifier "local_80") (/ "/") (number_literal "1000"))) (; ";")) (expression_statement "local_b0 = (local_80 % 1000) * 1000;" (assignment_expression "local_b0 = (local_80 % 1000) * 1000" (identifier "local_b0") (= "=") (binary_expression "(local_80 % 1000) * 1000" (parenthesized_expression "(local_80 % 1000)" (( "(") (binary_expression "local_80 % 1000" (identifier "local_80") (% "%") (number_literal "1000")) () ")")) (* "*") (number_literal "1000"))) (; ";")) (expression_statement "local_c4 = local_84 / 1000;" (assignment_expression "local_c4 = local_84 / 1000" (identifier "local_c4") (= "=") (binary_expression "local_84 / 1000" (identifier "local_84") (/ "/") (number_literal "1000"))) (; ";")) (expression_statement "local_b4 = (local_84 % 1000) * 1000;" (assignment_expression "local_b4 = (local_84 % 1000) * 1000" (identifier "local_b4") (= "=") (binary_expression "(local_84 % 1000) * 1000" (parenthesized_expression "(local_84 % 1000)" (( "(") (binary_expression "local_84 % 1000" (identifier "local_84") (% "%") (number_literal "1000")) () ")")) (* "*") (number_literal "1000"))) (; ";")) (if_statement "if (piVar4[3] == 0) {\n          ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n          if (ppuVar2 == local_90 + -0xc8a2c) {\n            iVar8 = piVar4[0xb];\n            local_c8 = local_5c;\n            iVar5 = -1;\n            local_64 = local_c8;\n            if (iVar8 != 0) {\n              *(int *)(puVar9 + -0x14) = iVar8;\n              *(undefined4 *)(puVar9 + -0x18) = 0x1912ff;\n              local_cc = iVar8;\n              sVar6 = strlen(*(char **)(puVar9 + -0x14));\n              iVar5 = sVar6 + local_cc;\n              iVar8 = local_cc;\n            }\n            puVar11 = puVar9 + -4;\n            *(undefined4 *)(puVar9 + -8) = 0;\n            *(int *)(puVar9 + -0xc) = iVar5;\n            *(int *)(puVar9 + -0x10) = iVar8;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191317;\n            FUN_00050e40();\n          }\n          else {\n            *(int **)(puVar9 + -0x10) = piVar4;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191579;\n            (*(code *)ppuVar2)();\n            local_c8 = local_5c;\n            puVar11 = puVar9 + -8;\n          }\n          piVar10 = (int *)piVar4[2];\n          if (local_64 == local_c8) {\n            if (local_60 != 0) {\n              if (local_60 == 1) {\n                *(undefined1 *)piVar10 = (undefined1)local_5c[0];\n                piVar10 = (int *)piVar4[2];\n              }\n              else {\n                *(int *)(puVar11 + -8) = local_60;\n                *(int **)(puVar11 + -0xc) = local_c8;\n                *(int **)(puVar11 + -0x10) = piVar10;\n                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;\n                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));\n                piVar10 = (int *)piVar4[2];\n              }\n            }\n            piVar4[3] = local_60;\n            *(undefined1 *)((int)piVar10 + local_60) = 0;\n            piVar10 = local_64;\n            iVar8 = local_5c[0];\n          }\n          else {\n            if (piVar10 == piVar4 + 4) {\n              piVar4[2] = (int)local_64;\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n            }\n            else {\n              piVar4[2] = (int)local_64;\n              iVar8 = piVar4[4];\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n              local_64 = piVar10;\n              if (piVar10 != (int *)0x0) goto LAB_00191357;\n            }\n            local_64 = local_c8;\n            local_c8 = local_5c;\n            piVar10 = local_c8;\n            iVar8 = local_5c[0];\n          }\nLAB_00191357:\n          local_5c[0] = iVar8;\n          local_60 = 0;\n          *(undefined1 *)piVar10 = 0;\n          if (local_64 != local_c8) {\n            *(int **)(puVar11 + -0x10) = local_64;\n            *(undefined4 *)(puVar11 + -0x14) = 0x19137b;\n            FUN_001e6db0();\n          }\n        }" (if "if") (parenthesized_expression "(piVar4[3] == 0)" (( "(") (binary_expression "piVar4[3] == 0" (subscript_expression "piVar4[3]" (identifier "piVar4") ([ "[") (number_literal "3") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          ppuVar2 = *(undefined ***)(*piVar4 + 0x14);\n          if (ppuVar2 == local_90 + -0xc8a2c) {\n            iVar8 = piVar4[0xb];\n            local_c8 = local_5c;\n            iVar5 = -1;\n            local_64 = local_c8;\n            if (iVar8 != 0) {\n              *(int *)(puVar9 + -0x14) = iVar8;\n              *(undefined4 *)(puVar9 + -0x18) = 0x1912ff;\n              local_cc = iVar8;\n              sVar6 = strlen(*(char **)(puVar9 + -0x14));\n              iVar5 = sVar6 + local_cc;\n              iVar8 = local_cc;\n            }\n            puVar11 = puVar9 + -4;\n            *(undefined4 *)(puVar9 + -8) = 0;\n            *(int *)(puVar9 + -0xc) = iVar5;\n            *(int *)(puVar9 + -0x10) = iVar8;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191317;\n            FUN_00050e40();\n          }\n          else {\n            *(int **)(puVar9 + -0x10) = piVar4;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191579;\n            (*(code *)ppuVar2)();\n            local_c8 = local_5c;\n            puVar11 = puVar9 + -8;\n          }\n          piVar10 = (int *)piVar4[2];\n          if (local_64 == local_c8) {\n            if (local_60 != 0) {\n              if (local_60 == 1) {\n                *(undefined1 *)piVar10 = (undefined1)local_5c[0];\n                piVar10 = (int *)piVar4[2];\n              }\n              else {\n                *(int *)(puVar11 + -8) = local_60;\n                *(int **)(puVar11 + -0xc) = local_c8;\n                *(int **)(puVar11 + -0x10) = piVar10;\n                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;\n                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));\n                piVar10 = (int *)piVar4[2];\n              }\n            }\n            piVar4[3] = local_60;\n            *(undefined1 *)((int)piVar10 + local_60) = 0;\n            piVar10 = local_64;\n            iVar8 = local_5c[0];\n          }\n          else {\n            if (piVar10 == piVar4 + 4) {\n              piVar4[2] = (int)local_64;\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n            }\n            else {\n              piVar4[2] = (int)local_64;\n              iVar8 = piVar4[4];\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n              local_64 = piVar10;\n              if (piVar10 != (int *)0x0) goto LAB_00191357;\n            }\n            local_64 = local_c8;\n            local_c8 = local_5c;\n            piVar10 = local_c8;\n            iVar8 = local_5c[0];\n          }\nLAB_00191357:\n          local_5c[0] = iVar8;\n          local_60 = 0;\n          *(undefined1 *)piVar10 = 0;\n          if (local_64 != local_c8) {\n            *(int **)(puVar11 + -0x10) = local_64;\n            *(undefined4 *)(puVar11 + -0x14) = 0x19137b;\n            FUN_001e6db0();\n          }\n        }" ({ "{") (expression_statement "ppuVar2 = *(undefined ***)(*piVar4 + 0x14);" (assignment_expression "ppuVar2 = *(undefined ***)(*piVar4 + 0x14)" (identifier "ppuVar2") (= "=") (pointer_expression "*(undefined ***)(*piVar4 + 0x14)" (* "*") (cast_expression "(undefined ***)(*piVar4 + 0x14)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(*piVar4 + 0x14)" (( "(") (binary_expression "*piVar4 + 0x14" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (ppuVar2 == local_90 + -0xc8a2c) {\n            iVar8 = piVar4[0xb];\n            local_c8 = local_5c;\n            iVar5 = -1;\n            local_64 = local_c8;\n            if (iVar8 != 0) {\n              *(int *)(puVar9 + -0x14) = iVar8;\n              *(undefined4 *)(puVar9 + -0x18) = 0x1912ff;\n              local_cc = iVar8;\n              sVar6 = strlen(*(char **)(puVar9 + -0x14));\n              iVar5 = sVar6 + local_cc;\n              iVar8 = local_cc;\n            }\n            puVar11 = puVar9 + -4;\n            *(undefined4 *)(puVar9 + -8) = 0;\n            *(int *)(puVar9 + -0xc) = iVar5;\n            *(int *)(puVar9 + -0x10) = iVar8;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191317;\n            FUN_00050e40();\n          }\n          else {\n            *(int **)(puVar9 + -0x10) = piVar4;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191579;\n            (*(code *)ppuVar2)();\n            local_c8 = local_5c;\n            puVar11 = puVar9 + -8;\n          }" (if "if") (parenthesized_expression "(ppuVar2 == local_90 + -0xc8a2c)" (( "(") (binary_expression "ppuVar2 == local_90 + -0xc8a2c" (identifier "ppuVar2") (== "==") (binary_expression "local_90 + -0xc8a2c" (identifier "local_90") (+ "+") (number_literal "-0xc8a2c"))) () ")")) (compound_statement "{\n            iVar8 = piVar4[0xb];\n            local_c8 = local_5c;\n            iVar5 = -1;\n            local_64 = local_c8;\n            if (iVar8 != 0) {\n              *(int *)(puVar9 + -0x14) = iVar8;\n              *(undefined4 *)(puVar9 + -0x18) = 0x1912ff;\n              local_cc = iVar8;\n              sVar6 = strlen(*(char **)(puVar9 + -0x14));\n              iVar5 = sVar6 + local_cc;\n              iVar8 = local_cc;\n            }\n            puVar11 = puVar9 + -4;\n            *(undefined4 *)(puVar9 + -8) = 0;\n            *(int *)(puVar9 + -0xc) = iVar5;\n            *(int *)(puVar9 + -0x10) = iVar8;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191317;\n            FUN_00050e40();\n          }" ({ "{") (expression_statement "iVar8 = piVar4[0xb];" (assignment_expression "iVar8 = piVar4[0xb]" (identifier "iVar8") (= "=") (subscript_expression "piVar4[0xb]" (identifier "piVar4") ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (expression_statement "local_c8 = local_5c;" (assignment_expression "local_c8 = local_5c" (identifier "local_c8") (= "=") (identifier "local_5c")) (; ";")) (expression_statement "iVar5 = -1;" (assignment_expression "iVar5 = -1" (identifier "iVar5") (= "=") (number_literal "-1")) (; ";")) (expression_statement "local_64 = local_c8;" (assignment_expression "local_64 = local_c8" (identifier "local_64") (= "=") (identifier "local_c8")) (; ";")) (if_statement "if (iVar8 != 0) {\n              *(int *)(puVar9 + -0x14) = iVar8;\n              *(undefined4 *)(puVar9 + -0x18) = 0x1912ff;\n              local_cc = iVar8;\n              sVar6 = strlen(*(char **)(puVar9 + -0x14));\n              iVar5 = sVar6 + local_cc;\n              iVar8 = local_cc;\n            }" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              *(int *)(puVar9 + -0x14) = iVar8;\n              *(undefined4 *)(puVar9 + -0x18) = 0x1912ff;\n              local_cc = iVar8;\n              sVar6 = strlen(*(char **)(puVar9 + -0x14));\n              iVar5 = sVar6 + local_cc;\n              iVar8 = local_cc;\n            }" ({ "{") (expression_statement "*(int *)(puVar9 + -0x14) = iVar8;" (assignment_expression "*(int *)(puVar9 + -0x14) = iVar8" (pointer_expression "*(int *)(puVar9 + -0x14)" (* "*") (cast_expression "(int *)(puVar9 + -0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x14)" (( "(") (binary_expression "puVar9 + -0x14" (identifier "puVar9") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "iVar8")) (; ";")) (expression_statement "*(undefined4 *)(puVar9 + -0x18) = 0x1912ff;" (assignment_expression "*(undefined4 *)(puVar9 + -0x18) = 0x1912ff" (pointer_expression "*(undefined4 *)(puVar9 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar9 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x18)" (( "(") (binary_expression "puVar9 + -0x18" (identifier "puVar9") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x1912ff")) (; ";")) (expression_statement "local_cc = iVar8;" (assignment_expression "local_cc = iVar8" (identifier "local_cc") (= "=") (identifier "iVar8")) (; ";")) (expression_statement "sVar6 = strlen(*(char **)(puVar9 + -0x14));" (assignment_expression "sVar6 = strlen(*(char **)(puVar9 + -0x14))" (identifier "sVar6") (= "=") (call_expression "strlen(*(char **)(puVar9 + -0x14))" (identifier "strlen") (argument_list "(*(char **)(puVar9 + -0x14))" (( "(") (pointer_expression "*(char **)(puVar9 + -0x14)" (* "*") (cast_expression "(char **)(puVar9 + -0x14)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0x14)" (( "(") (binary_expression "puVar9 + -0x14" (identifier "puVar9") (+ "+") (number_literal "-0x14")) () ")")))) () ")")))) (; ";")) (expression_statement "iVar5 = sVar6 + local_cc;" (assignment_expression "iVar5 = sVar6 + local_cc" (identifier "iVar5") (= "=") (binary_expression "sVar6 + local_cc" (identifier "sVar6") (+ "+") (identifier "local_cc"))) (; ";")) (expression_statement "iVar8 = local_cc;" (assignment_expression "iVar8 = local_cc" (identifier "iVar8") (= "=") (identifier "local_cc")) (; ";")) (} "}"))) (expression_statement "puVar11 = puVar9 + -4;" (assignment_expression "puVar11 = puVar9 + -4" (identifier "puVar11") (= "=") (binary_expression "puVar9 + -4" (identifier "puVar9") (+ "+") (number_literal "-4"))) (; ";")) (expression_statement "*(undefined4 *)(puVar9 + -8) = 0;" (assignment_expression "*(undefined4 *)(puVar9 + -8) = 0" (pointer_expression "*(undefined4 *)(puVar9 + -8)" (* "*") (cast_expression "(undefined4 *)(puVar9 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -8)" (( "(") (binary_expression "puVar9 + -8" (identifier "puVar9") (+ "+") (number_literal "-8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int *)(puVar9 + -0xc) = iVar5;" (assignment_expression "*(int *)(puVar9 + -0xc) = iVar5" (pointer_expression "*(int *)(puVar9 + -0xc)" (* "*") (cast_expression "(int *)(puVar9 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0xc)" (( "(") (binary_expression "puVar9 + -0xc" (identifier "puVar9") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "*(int *)(puVar9 + -0x10) = iVar8;" (assignment_expression "*(int *)(puVar9 + -0x10) = iVar8" (pointer_expression "*(int *)(puVar9 + -0x10)" (* "*") (cast_expression "(int *)(puVar9 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x10)" (( "(") (binary_expression "puVar9 + -0x10" (identifier "puVar9") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "iVar8")) (; ";")) (expression_statement "*(int ***)(puVar9 + -0x14) = &local_64;" (assignment_expression "*(int ***)(puVar9 + -0x14) = &local_64" (pointer_expression "*(int ***)(puVar9 + -0x14)" (* "*") (cast_expression "(int ***)(puVar9 + -0x14)" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar9 + -0x14)" (( "(") (binary_expression "puVar9 + -0x14" (identifier "puVar9") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&local_64" (& "&") (identifier "local_64"))) (; ";")) (expression_statement "*(undefined4 *)(puVar9 + -0x18) = 0x191317;" (assignment_expression "*(undefined4 *)(puVar9 + -0x18) = 0x191317" (pointer_expression "*(undefined4 *)(puVar9 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar9 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x18)" (( "(") (binary_expression "puVar9 + -0x18" (identifier "puVar9") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x191317")) (; ";")) (expression_statement "FUN_00050e40();" (call_expression "FUN_00050e40()" (identifier "FUN_00050e40") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n            *(int **)(puVar9 + -0x10) = piVar4;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191579;\n            (*(code *)ppuVar2)();\n            local_c8 = local_5c;\n            puVar11 = puVar9 + -8;\n          }" (else "else") (compound_statement "{\n            *(int **)(puVar9 + -0x10) = piVar4;\n            *(int ***)(puVar9 + -0x14) = &local_64;\n            *(undefined4 *)(puVar9 + -0x18) = 0x191579;\n            (*(code *)ppuVar2)();\n            local_c8 = local_5c;\n            puVar11 = puVar9 + -8;\n          }" ({ "{") (expression_statement "*(int **)(puVar9 + -0x10) = piVar4;" (assignment_expression "*(int **)(puVar9 + -0x10) = piVar4" (pointer_expression "*(int **)(puVar9 + -0x10)" (* "*") (cast_expression "(int **)(puVar9 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + -0x10)" (( "(") (binary_expression "puVar9 + -0x10" (identifier "puVar9") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "piVar4")) (; ";")) (expression_statement "*(int ***)(puVar9 + -0x14) = &local_64;" (assignment_expression "*(int ***)(puVar9 + -0x14) = &local_64" (pointer_expression "*(int ***)(puVar9 + -0x14)" (* "*") (cast_expression "(int ***)(puVar9 + -0x14)" (( "(") (type_descriptor "int ***" (primitive_type "int") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar9 + -0x14)" (( "(") (binary_expression "puVar9 + -0x14" (identifier "puVar9") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&local_64" (& "&") (identifier "local_64"))) (; ";")) (expression_statement "*(undefined4 *)(puVar9 + -0x18) = 0x191579;" (assignment_expression "*(undefined4 *)(puVar9 + -0x18) = 0x191579" (pointer_expression "*(undefined4 *)(puVar9 + -0x18)" (* "*") (cast_expression "(undefined4 *)(puVar9 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + -0x18)" (( "(") (binary_expression "puVar9 + -0x18" (identifier "puVar9") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x191579")) (; ";")) (expression_statement "(*(code *)ppuVar2)();" (call_expression "(*(code *)ppuVar2)()" (parenthesized_expression "(*(code *)ppuVar2)" (( "(") (pointer_expression "*(code *)ppuVar2" (* "*") (cast_expression "(code *)ppuVar2" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar2"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_c8 = local_5c;" (assignment_expression "local_c8 = local_5c" (identifier "local_c8") (= "=") (identifier "local_5c")) (; ";")) (expression_statement "puVar11 = puVar9 + -8;" (assignment_expression "puVar11 = puVar9 + -8" (identifier "puVar11") (= "=") (binary_expression "puVar9 + -8" (identifier "puVar9") (+ "+") (number_literal "-8"))) (; ";")) (} "}")))) (expression_statement "piVar10 = (int *)piVar4[2];" (assignment_expression "piVar10 = (int *)piVar4[2]" (identifier "piVar10") (= "=") (cast_expression "(int *)piVar4[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar4[2]" (identifier "piVar4") ([ "[") (number_literal "2") (] "]")))) (; ";")) (if_statement "if (local_64 == local_c8) {\n            if (local_60 != 0) {\n              if (local_60 == 1) {\n                *(undefined1 *)piVar10 = (undefined1)local_5c[0];\n                piVar10 = (int *)piVar4[2];\n              }\n              else {\n                *(int *)(puVar11 + -8) = local_60;\n                *(int **)(puVar11 + -0xc) = local_c8;\n                *(int **)(puVar11 + -0x10) = piVar10;\n                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;\n                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));\n                piVar10 = (int *)piVar4[2];\n              }\n            }\n            piVar4[3] = local_60;\n            *(undefined1 *)((int)piVar10 + local_60) = 0;\n            piVar10 = local_64;\n            iVar8 = local_5c[0];\n          }\n          else {\n            if (piVar10 == piVar4 + 4) {\n              piVar4[2] = (int)local_64;\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n            }\n            else {\n              piVar4[2] = (int)local_64;\n              iVar8 = piVar4[4];\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n              local_64 = piVar10;\n              if (piVar10 != (int *)0x0) goto LAB_00191357;\n            }\n            local_64 = local_c8;\n            local_c8 = local_5c;\n            piVar10 = local_c8;\n            iVar8 = local_5c[0];\n          }" (if "if") (parenthesized_expression "(local_64 == local_c8)" (( "(") (binary_expression "local_64 == local_c8" (identifier "local_64") (== "==") (identifier "local_c8")) () ")")) (compound_statement "{\n            if (local_60 != 0) {\n              if (local_60 == 1) {\n                *(undefined1 *)piVar10 = (undefined1)local_5c[0];\n                piVar10 = (int *)piVar4[2];\n              }\n              else {\n                *(int *)(puVar11 + -8) = local_60;\n                *(int **)(puVar11 + -0xc) = local_c8;\n                *(int **)(puVar11 + -0x10) = piVar10;\n                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;\n                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));\n                piVar10 = (int *)piVar4[2];\n              }\n            }\n            piVar4[3] = local_60;\n            *(undefined1 *)((int)piVar10 + local_60) = 0;\n            piVar10 = local_64;\n            iVar8 = local_5c[0];\n          }" ({ "{") (if_statement "if (local_60 != 0) {\n              if (local_60 == 1) {\n                *(undefined1 *)piVar10 = (undefined1)local_5c[0];\n                piVar10 = (int *)piVar4[2];\n              }\n              else {\n                *(int *)(puVar11 + -8) = local_60;\n                *(int **)(puVar11 + -0xc) = local_c8;\n                *(int **)(puVar11 + -0x10) = piVar10;\n                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;\n                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));\n                piVar10 = (int *)piVar4[2];\n              }\n            }" (if "if") (parenthesized_expression "(local_60 != 0)" (( "(") (binary_expression "local_60 != 0" (identifier "local_60") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              if (local_60 == 1) {\n                *(undefined1 *)piVar10 = (undefined1)local_5c[0];\n                piVar10 = (int *)piVar4[2];\n              }\n              else {\n                *(int *)(puVar11 + -8) = local_60;\n                *(int **)(puVar11 + -0xc) = local_c8;\n                *(int **)(puVar11 + -0x10) = piVar10;\n                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;\n                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));\n                piVar10 = (int *)piVar4[2];\n              }\n            }" ({ "{") (if_statement "if (local_60 == 1) {\n                *(undefined1 *)piVar10 = (undefined1)local_5c[0];\n                piVar10 = (int *)piVar4[2];\n              }\n              else {\n                *(int *)(puVar11 + -8) = local_60;\n                *(int **)(puVar11 + -0xc) = local_c8;\n                *(int **)(puVar11 + -0x10) = piVar10;\n                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;\n                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));\n                piVar10 = (int *)piVar4[2];\n              }" (if "if") (parenthesized_expression "(local_60 == 1)" (( "(") (binary_expression "local_60 == 1" (identifier "local_60") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                *(undefined1 *)piVar10 = (undefined1)local_5c[0];\n                piVar10 = (int *)piVar4[2];\n              }" ({ "{") (expression_statement "*(undefined1 *)piVar10 = (undefined1)local_5c[0];" (assignment_expression "*(undefined1 *)piVar10 = (undefined1)local_5c[0]" (pointer_expression "*(undefined1 *)piVar10" (* "*") (cast_expression "(undefined1 *)piVar10" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "piVar10"))) (= "=") (cast_expression "(undefined1)local_5c[0]" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (subscript_expression "local_5c[0]" (identifier "local_5c") ([ "[") (number_literal "0") (] "]")))) (; ";")) (expression_statement "piVar10 = (int *)piVar4[2];" (assignment_expression "piVar10 = (int *)piVar4[2]" (identifier "piVar10") (= "=") (cast_expression "(int *)piVar4[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar4[2]" (identifier "piVar4") ([ "[") (number_literal "2") (] "]")))) (; ";")) (} "}")) (else_clause "else {\n                *(int *)(puVar11 + -8) = local_60;\n                *(int **)(puVar11 + -0xc) = local_c8;\n                *(int **)(puVar11 + -0x10) = piVar10;\n                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;\n                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));\n                piVar10 = (int *)piVar4[2];\n              }" (else "else") (compound_statement "{\n                *(int *)(puVar11 + -8) = local_60;\n                *(int **)(puVar11 + -0xc) = local_c8;\n                *(int **)(puVar11 + -0x10) = piVar10;\n                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;\n                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));\n                piVar10 = (int *)piVar4[2];\n              }" ({ "{") (expression_statement "*(int *)(puVar11 + -8) = local_60;" (assignment_expression "*(int *)(puVar11 + -8) = local_60" (pointer_expression "*(int *)(puVar11 + -8)" (* "*") (cast_expression "(int *)(puVar11 + -8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -8)" (( "(") (binary_expression "puVar11 + -8" (identifier "puVar11") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "local_60")) (; ";")) (expression_statement "*(int **)(puVar11 + -0xc) = local_c8;" (assignment_expression "*(int **)(puVar11 + -0xc) = local_c8" (pointer_expression "*(int **)(puVar11 + -0xc)" (* "*") (cast_expression "(int **)(puVar11 + -0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0xc)" (( "(") (binary_expression "puVar11 + -0xc" (identifier "puVar11") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_c8")) (; ";")) (expression_statement "*(int **)(puVar11 + -0x10) = piVar10;" (assignment_expression "*(int **)(puVar11 + -0x10) = piVar10" (pointer_expression "*(int **)(puVar11 + -0x10)" (* "*") (cast_expression "(int **)(puVar11 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0x10)" (( "(") (binary_expression "puVar11 + -0x10" (identifier "puVar11") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "piVar10")) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + -0x14) = 0x19154f;" (assignment_expression "*(undefined4 *)(puVar11 + -0x14) = 0x19154f" (pointer_expression "*(undefined4 *)(puVar11 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x14)" (( "(") (binary_expression "puVar11 + -0x14" (identifier "puVar11") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x19154f")) (; ";")) (expression_statement "memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8));" (call_expression "memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8))" (identifier "memcpy") (argument_list "(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),\n                       *(size_t *)(puVar11 + -8))" (( "(") (pointer_expression "*(void **)(puVar11 + -0x10)" (* "*") (cast_expression "(void **)(puVar11 + -0x10)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0x10)" (( "(") (binary_expression "puVar11 + -0x10" (identifier "puVar11") (+ "+") (number_literal "-0x10")) () ")")))) (, ",") (pointer_expression "*(void **)(puVar11 + -0xc)" (* "*") (cast_expression "(void **)(puVar11 + -0xc)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0xc)" (( "(") (binary_expression "puVar11 + -0xc" (identifier "puVar11") (+ "+") (number_literal "-0xc")) () ")")))) (, ",") (pointer_expression "*(size_t *)(puVar11 + -8)" (* "*") (cast_expression "(size_t *)(puVar11 + -8)" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -8)" (( "(") (binary_expression "puVar11 + -8" (identifier "puVar11") (+ "+") (number_literal "-8")) () ")")))) () ")"))) (; ";")) (expression_statement "piVar10 = (int *)piVar4[2];" (assignment_expression "piVar10 = (int *)piVar4[2]" (identifier "piVar10") (= "=") (cast_expression "(int *)piVar4[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar4[2]" (identifier "piVar4") ([ "[") (number_literal "2") (] "]")))) (; ";")) (} "}")))) (} "}"))) (expression_statement "piVar4[3] = local_60;" (assignment_expression "piVar4[3] = local_60" (subscript_expression "piVar4[3]" (identifier "piVar4") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_60")) (; ";")) (expression_statement "*(undefined1 *)((int)piVar10 + local_60) = 0;" (assignment_expression "*(undefined1 *)((int)piVar10 + local_60) = 0" (pointer_expression "*(undefined1 *)((int)piVar10 + local_60)" (* "*") (cast_expression "(undefined1 *)((int)piVar10 + local_60)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + local_60)" (( "(") (binary_expression "(int)piVar10 + local_60" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (identifier "local_60")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar10 = local_64;" (assignment_expression "piVar10 = local_64" (identifier "piVar10") (= "=") (identifier "local_64")) (; ";")) (expression_statement "iVar8 = local_5c[0];" (assignment_expression "iVar8 = local_5c[0]" (identifier "iVar8") (= "=") (subscript_expression "local_5c[0]" (identifier "local_5c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n            if (piVar10 == piVar4 + 4) {\n              piVar4[2] = (int)local_64;\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n            }\n            else {\n              piVar4[2] = (int)local_64;\n              iVar8 = piVar4[4];\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n              local_64 = piVar10;\n              if (piVar10 != (int *)0x0) goto LAB_00191357;\n            }\n            local_64 = local_c8;\n            local_c8 = local_5c;\n            piVar10 = local_c8;\n            iVar8 = local_5c[0];\n          }" (else "else") (compound_statement "{\n            if (piVar10 == piVar4 + 4) {\n              piVar4[2] = (int)local_64;\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n            }\n            else {\n              piVar4[2] = (int)local_64;\n              iVar8 = piVar4[4];\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n              local_64 = piVar10;\n              if (piVar10 != (int *)0x0) goto LAB_00191357;\n            }\n            local_64 = local_c8;\n            local_c8 = local_5c;\n            piVar10 = local_c8;\n            iVar8 = local_5c[0];\n          }" ({ "{") (if_statement "if (piVar10 == piVar4 + 4) {\n              piVar4[2] = (int)local_64;\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n            }\n            else {\n              piVar4[2] = (int)local_64;\n              iVar8 = piVar4[4];\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n              local_64 = piVar10;\n              if (piVar10 != (int *)0x0) goto LAB_00191357;\n            }" (if "if") (parenthesized_expression "(piVar10 == piVar4 + 4)" (( "(") (binary_expression "piVar10 == piVar4 + 4" (identifier "piVar10") (== "==") (binary_expression "piVar4 + 4" (identifier "piVar4") (+ "+") (number_literal "4"))) () ")")) (compound_statement "{\n              piVar4[2] = (int)local_64;\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n            }" ({ "{") (expression_statement "piVar4[2] = (int)local_64;" (assignment_expression "piVar4[2] = (int)local_64" (subscript_expression "piVar4[2]" (identifier "piVar4") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(int)local_64" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_64"))) (; ";")) (expression_statement "piVar4[3] = local_60;" (assignment_expression "piVar4[3] = local_60" (subscript_expression "piVar4[3]" (identifier "piVar4") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_60")) (; ";")) (expression_statement "piVar4[4] = local_5c[0];" (assignment_expression "piVar4[4] = local_5c[0]" (subscript_expression "piVar4[4]" (identifier "piVar4") ([ "[") (number_literal "4") (] "]")) (= "=") (subscript_expression "local_5c[0]" (identifier "local_5c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n              piVar4[2] = (int)local_64;\n              iVar8 = piVar4[4];\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n              local_64 = piVar10;\n              if (piVar10 != (int *)0x0) goto LAB_00191357;\n            }" (else "else") (compound_statement "{\n              piVar4[2] = (int)local_64;\n              iVar8 = piVar4[4];\n              piVar4[3] = local_60;\n              piVar4[4] = local_5c[0];\n              local_64 = piVar10;\n              if (piVar10 != (int *)0x0) goto LAB_00191357;\n            }" ({ "{") (expression_statement "piVar4[2] = (int)local_64;" (assignment_expression "piVar4[2] = (int)local_64" (subscript_expression "piVar4[2]" (identifier "piVar4") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(int)local_64" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_64"))) (; ";")) (expression_statement "iVar8 = piVar4[4];" (assignment_expression "iVar8 = piVar4[4]" (identifier "iVar8") (= "=") (subscript_expression "piVar4[4]" (identifier "piVar4") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "piVar4[3] = local_60;" (assignment_expression "piVar4[3] = local_60" (subscript_expression "piVar4[3]" (identifier "piVar4") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_60")) (; ";")) (expression_statement "piVar4[4] = local_5c[0];" (assignment_expression "piVar4[4] = local_5c[0]" (subscript_expression "piVar4[4]" (identifier "piVar4") ([ "[") (number_literal "4") (] "]")) (= "=") (subscript_expression "local_5c[0]" (identifier "local_5c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "local_64 = piVar10;" (assignment_expression "local_64 = piVar10" (identifier "local_64") (= "=") (identifier "piVar10")) (; ";")) (if_statement "if (piVar10 != (int *)0x0) goto LAB_00191357;" (if "if") (parenthesized_expression "(piVar10 != (int *)0x0)" (( "(") (binary_expression "piVar10 != (int *)0x0" (identifier "piVar10") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00191357;" (goto "goto") (statement_identifier "LAB_00191357") (; ";"))) (} "}")))) (expression_statement "local_64 = local_c8;" (assignment_expression "local_64 = local_c8" (identifier "local_64") (= "=") (identifier "local_c8")) (; ";")) (expression_statement "local_c8 = local_5c;" (assignment_expression "local_c8 = local_5c" (identifier "local_c8") (= "=") (identifier "local_5c")) (; ";")) (expression_statement "piVar10 = local_c8;" (assignment_expression "piVar10 = local_c8" (identifier "piVar10") (= "=") (identifier "local_c8")) (; ";")) (expression_statement "iVar8 = local_5c[0];" (assignment_expression "iVar8 = local_5c[0]" (identifier "iVar8") (= "=") (subscript_expression "local_5c[0]" (identifier "local_5c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (} "}")))) (labeled_statement "LAB_00191357:\n          local_5c[0] = iVar8;" (statement_identifier "LAB_00191357") (: ":") (expression_statement "local_5c[0] = iVar8;" (assignment_expression "local_5c[0] = iVar8" (subscript_expression "local_5c[0]" (identifier "local_5c") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "iVar8")) (; ";"))) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" (identifier "local_60") (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)piVar10 = 0;" (assignment_expression "*(undefined1 *)piVar10 = 0" (pointer_expression "*(undefined1 *)piVar10" (* "*") (cast_expression "(undefined1 *)piVar10" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "piVar10"))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (local_64 != local_c8) {\n            *(int **)(puVar11 + -0x10) = local_64;\n            *(undefined4 *)(puVar11 + -0x14) = 0x19137b;\n            FUN_001e6db0();\n          }" (if "if") (parenthesized_expression "(local_64 != local_c8)" (( "(") (binary_expression "local_64 != local_c8" (identifier "local_64") (!= "!=") (identifier "local_c8")) () ")")) (compound_statement "{\n            *(int **)(puVar11 + -0x10) = local_64;\n            *(undefined4 *)(puVar11 + -0x14) = 0x19137b;\n            FUN_001e6db0();\n          }" ({ "{") (expression_statement "*(int **)(puVar11 + -0x10) = local_64;" (assignment_expression "*(int **)(puVar11 + -0x10) = local_64" (pointer_expression "*(int **)(puVar11 + -0x10)" (* "*") (cast_expression "(int **)(puVar11 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0x10)" (( "(") (binary_expression "puVar11 + -0x10" (identifier "puVar11") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_64")) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + -0x14) = 0x19137b;" (assignment_expression "*(undefined4 *)(puVar11 + -0x14) = 0x19137b" (pointer_expression "*(undefined4 *)(puVar11 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x14)" (( "(") (binary_expression "puVar11 + -0x14" (identifier "puVar11") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x19137b")) (; ";")) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" (identifier "FUN_001e6db0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "*(int **)(puVar11 + -0xc) = local_98;" (assignment_expression "*(int **)(puVar11 + -0xc) = local_98" (pointer_expression "*(int **)(puVar11 + -0xc)" (* "*") (cast_expression "(int **)(puVar11 + -0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar11 + -0xc)" (( "(") (binary_expression "puVar11 + -0xc" (identifier "puVar11") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_98")) (; ";")) (expression_statement "*(int *)(puVar11 + -0x10) = local_bc;" (assignment_expression "*(int *)(puVar11 + -0x10) = local_bc" (pointer_expression "*(int *)(puVar11 + -0x10)" (* "*") (cast_expression "(int *)(puVar11 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x10)" (( "(") (binary_expression "puVar11 + -0x10" (identifier "puVar11") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_bc")) (; ";")) (expression_statement "*(int *)(puVar11 + -0x14) = local_b0;" (assignment_expression "*(int *)(puVar11 + -0x14) = local_b0" (pointer_expression "*(int *)(puVar11 + -0x14)" (* "*") (cast_expression "(int *)(puVar11 + -0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x14)" (( "(") (binary_expression "puVar11 + -0x14" (identifier "puVar11") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "local_b0")) (; ";")) (expression_statement "*(int *)(puVar11 + -0x18) = local_c0;" (assignment_expression "*(int *)(puVar11 + -0x18) = local_c0" (pointer_expression "*(int *)(puVar11 + -0x18)" (* "*") (cast_expression "(int *)(puVar11 + -0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x18)" (( "(") (binary_expression "puVar11 + -0x18" (identifier "puVar11") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "local_c0")) (; ";")) (expression_statement "*(int *)(puVar11 + -0x1c) = local_b4;" (assignment_expression "*(int *)(puVar11 + -0x1c) = local_b4" (pointer_expression "*(int *)(puVar11 + -0x1c)" (* "*") (cast_expression "(int *)(puVar11 + -0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x1c)" (( "(") (binary_expression "puVar11 + -0x1c" (identifier "puVar11") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "local_b4")) (; ";")) (expression_statement "*(int *)(puVar11 + -0x20) = local_c4;" (assignment_expression "*(int *)(puVar11 + -0x20) = local_c4" (pointer_expression "*(int *)(puVar11 + -0x20)" (* "*") (cast_expression "(int *)(puVar11 + -0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x20)" (( "(") (binary_expression "puVar11 + -0x20" (identifier "puVar11") (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (identifier "local_c4")) (; ";")) (expression_statement "*(int *)(puVar11 + -0x24) = piVar4[2];" (assignment_expression "*(int *)(puVar11 + -0x24) = piVar4[2]" (pointer_expression "*(int *)(puVar11 + -0x24)" (* "*") (cast_expression "(int *)(puVar11 + -0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x24)" (( "(") (binary_expression "puVar11 + -0x24" (identifier "puVar11") (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (subscript_expression "piVar4[2]" (identifier "piVar4") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + -0x28) = param_2;" (assignment_expression "*(undefined4 *)(puVar11 + -0x28) = param_2" (pointer_expression "*(undefined4 *)(puVar11 + -0x28)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x28)" (( "(") (binary_expression "puVar11 + -0x28" (identifier "puVar11") (+ "+") (number_literal "-0x28")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(undefined ***)(puVar11 + -0x2c) = local_90 + -0x3d24b;" (assignment_expression "*(undefined ***)(puVar11 + -0x2c) = local_90 + -0x3d24b" (pointer_expression "*(undefined ***)(puVar11 + -0x2c)" (* "*") (cast_expression "(undefined ***)(puVar11 + -0x2c)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar11 + -0x2c)" (( "(") (binary_expression "puVar11 + -0x2c" (identifier "puVar11") (+ "+") (number_literal "-0x2c")) () ")")))) (= "=") (binary_expression "local_90 + -0x3d24b" (identifier "local_90") (+ "+") (number_literal "-0x3d24b"))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + -0x30) = local_b8;" (assignment_expression "*(undefined4 *)(puVar11 + -0x30) = local_b8" (pointer_expression "*(undefined4 *)(puVar11 + -0x30)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x30)" (( "(") (binary_expression "puVar11 + -0x30" (identifier "puVar11") (+ "+") (number_literal "-0x30")) () ")")))) (= "=") (identifier "local_b8")) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + -0x34) = 0x1913c3;" (assignment_expression "*(undefined4 *)(puVar11 + -0x34) = 0x1913c3" (pointer_expression "*(undefined4 *)(puVar11 + -0x34)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -0x34)" (( "(") (binary_expression "puVar11 + -0x34" (identifier "puVar11") (+ "+") (number_literal "-0x34")) () ")")))) (= "=") (number_literal "0x1913c3")) (; ";")) (expression_statement "FUN_000653f0();" (call_expression "FUN_000653f0()" (identifier "FUN_000653f0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar10 = (int *)puVar11;" (assignment_expression "piVar10 = (int *)puVar11" (identifier "piVar10") (= "=") (cast_expression "(int *)puVar11" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar11"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar8 = *(int *)*param_1;" (assignment_expression "iVar8 = *(int *)*param_1" (identifier "iVar8") (= "=") (pointer_expression "*(int *)*param_1" (* "*") (cast_expression "(int *)*param_1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1"))))) (; ";")) (expression_statement "*(int **)((int)piVar10 + -0x10) = (int *)*param_1;" (assignment_expression "*(int **)((int)piVar10 + -0x10) = (int *)*param_1" (pointer_expression "*(int **)((int)piVar10 + -0x10)" (* "*") (cast_expression "(int **)((int)piVar10 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar10 + -0x10)" (( "(") (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (cast_expression "(int *)*param_1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (expression_statement "pcVar3 = *(code **)(iVar8 + 8);" (assignment_expression "pcVar3 = *(code **)(iVar8 + 8)" (identifier "pcVar3") (= "=") (pointer_expression "*(code **)(iVar8 + 8)" (* "*") (cast_expression "(code **)(iVar8 + 8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar8 + 8)" (( "(") (binary_expression "iVar8 + 8" (identifier "iVar8") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x190f43;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x190f43" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + -0x14)" (( "(") (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x190f43")) (; ";")) (expression_statement "(*pcVar3)();" (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" (( "(") (pointer_expression "*pcVar3" (* "*") (identifier "pcVar3")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "param_1[5] = param_1[5] + -1;" (assignment_expression "param_1[5] = param_1[5] + -1" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (= "=") (binary_expression "param_1[5] + -1" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "*(undefined4 **)((int)piVar10 + -8) = local_a0;" (assignment_expression "*(undefined4 **)((int)piVar10 + -8) = local_a0" (pointer_expression "*(undefined4 **)((int)piVar10 + -8)" (* "*") (cast_expression "(undefined4 **)((int)piVar10 + -8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar10 + -8)" (( "(") (binary_expression "(int)piVar10 + -8" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "local_a0")) (; ";")) (expression_statement "*(int **)((int)piVar10 + -0xc) = piVar4;" (assignment_expression "*(int **)((int)piVar10 + -0xc) = piVar4" (pointer_expression "*(int **)((int)piVar10 + -0xc)" (* "*") (cast_expression "(int **)((int)piVar10 + -0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar10 + -0xc)" (( "(") (binary_expression "(int)piVar10 + -0xc" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "piVar4")) (; ";")) (expression_statement "*(undefined4 **)((int)piVar10 + -0x10) = param_1;" (assignment_expression "*(undefined4 **)((int)piVar10 + -0x10) = param_1" (pointer_expression "*(undefined4 **)((int)piVar10 + -0x10)" (* "*") (cast_expression "(undefined4 **)((int)piVar10 + -0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar10 + -0x10)" (( "(") (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x190f57;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x190f57" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + -0x14)" (( "(") (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x190f57")) (; ";")) (expression_statement "local_98 = (int *)FUN_00190b90();" (assignment_expression "local_98 = (int *)FUN_00190b90()" (identifier "local_98") (= "=") (cast_expression "(int *)FUN_00190b90()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00190b90()" (identifier "FUN_00190b90") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (local_98 == (int *)0x0) {\n      *(undefined4 **)((int)piVar10 + -0x10) = param_1;\n                    \n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191419;\n      local_98 = (int *)FUN_00190880();\n      if (local_98 != (int *)0x0) goto LAB_00190f68;\n    }\n    else {\nLAB_00190f68:\n      local_78[0] = 0;\n      ppuVar2 = *(undefined ***)(*local_98 + 0xc);\n      if (ppuVar2 != local_ac) {\n        *(undefined4 **)((int)piVar10 + -0xc) = local_a0;\n        *(int **)((int)piVar10 + -0x10) = local_98;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191441;\n        (*(code *)ppuVar2)();\n      }\n      param_1[5] = param_1[5] + 1;\n    }" (if "if") (parenthesized_expression "(local_98 == (int *)0x0)" (( "(") (binary_expression "local_98 == (int *)0x0" (identifier "local_98") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      *(undefined4 **)((int)piVar10 + -0x10) = param_1;\n                    \n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191419;\n      local_98 = (int *)FUN_00190880();\n      if (local_98 != (int *)0x0) goto LAB_00190f68;\n    }" ({ "{") (expression_statement "*(undefined4 **)((int)piVar10 + -0x10) = param_1;" (assignment_expression "*(undefined4 **)((int)piVar10 + -0x10) = param_1" (pointer_expression "*(undefined4 **)((int)piVar10 + -0x10)" (* "*") (cast_expression "(undefined4 **)((int)piVar10 + -0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar10 + -0x10)" (( "(") (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x191419;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x191419" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + -0x14)" (( "(") (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x191419")) (; ";")) (expression_statement "local_98 = (int *)FUN_00190880();" (assignment_expression "local_98 = (int *)FUN_00190880()" (identifier "local_98") (= "=") (cast_expression "(int *)FUN_00190880()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00190880()" (identifier "FUN_00190880") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (local_98 != (int *)0x0) goto LAB_00190f68;" (if "if") (parenthesized_expression "(local_98 != (int *)0x0)" (( "(") (binary_expression "local_98 != (int *)0x0" (identifier "local_98") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00190f68;" (goto "goto") (statement_identifier "LAB_00190f68") (; ";"))) (} "}")) (else_clause "else {\nLAB_00190f68:\n      local_78[0] = 0;\n      ppuVar2 = *(undefined ***)(*local_98 + 0xc);\n      if (ppuVar2 != local_ac) {\n        *(undefined4 **)((int)piVar10 + -0xc) = local_a0;\n        *(int **)((int)piVar10 + -0x10) = local_98;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191441;\n        (*(code *)ppuVar2)();\n      }\n      param_1[5] = param_1[5] + 1;\n    }" (else "else") (compound_statement "{\nLAB_00190f68:\n      local_78[0] = 0;\n      ppuVar2 = *(undefined ***)(*local_98 + 0xc);\n      if (ppuVar2 != local_ac) {\n        *(undefined4 **)((int)piVar10 + -0xc) = local_a0;\n        *(int **)((int)piVar10 + -0x10) = local_98;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191441;\n        (*(code *)ppuVar2)();\n      }\n      param_1[5] = param_1[5] + 1;\n    }" ({ "{") (labeled_statement "LAB_00190f68:\n      local_78[0] = 0;" (statement_identifier "LAB_00190f68") (: ":") (expression_statement "local_78[0] = 0;" (assignment_expression "local_78[0] = 0" (subscript_expression "local_78[0]" (identifier "local_78") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";"))) (expression_statement "ppuVar2 = *(undefined ***)(*local_98 + 0xc);" (assignment_expression "ppuVar2 = *(undefined ***)(*local_98 + 0xc)" (identifier "ppuVar2") (= "=") (pointer_expression "*(undefined ***)(*local_98 + 0xc)" (* "*") (cast_expression "(undefined ***)(*local_98 + 0xc)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(*local_98 + 0xc)" (( "(") (binary_expression "*local_98 + 0xc" (pointer_expression "*local_98" (* "*") (identifier "local_98")) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (ppuVar2 != local_ac) {\n        *(undefined4 **)((int)piVar10 + -0xc) = local_a0;\n        *(int **)((int)piVar10 + -0x10) = local_98;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191441;\n        (*(code *)ppuVar2)();\n      }" (if "if") (parenthesized_expression "(ppuVar2 != local_ac)" (( "(") (binary_expression "ppuVar2 != local_ac" (identifier "ppuVar2") (!= "!=") (identifier "local_ac")) () ")")) (compound_statement "{\n        *(undefined4 **)((int)piVar10 + -0xc) = local_a0;\n        *(int **)((int)piVar10 + -0x10) = local_98;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191441;\n        (*(code *)ppuVar2)();\n      }" ({ "{") (expression_statement "*(undefined4 **)((int)piVar10 + -0xc) = local_a0;" (assignment_expression "*(undefined4 **)((int)piVar10 + -0xc) = local_a0" (pointer_expression "*(undefined4 **)((int)piVar10 + -0xc)" (* "*") (cast_expression "(undefined4 **)((int)piVar10 + -0xc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar10 + -0xc)" (( "(") (binary_expression "(int)piVar10 + -0xc" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "local_a0")) (; ";")) (expression_statement "*(int **)((int)piVar10 + -0x10) = local_98;" (assignment_expression "*(int **)((int)piVar10 + -0x10) = local_98" (pointer_expression "*(int **)((int)piVar10 + -0x10)" (* "*") (cast_expression "(int **)((int)piVar10 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar10 + -0x10)" (( "(") (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "local_98")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x191441;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x191441" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + -0x14)" (( "(") (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x191441")) (; ";")) (expression_statement "(*(code *)ppuVar2)();" (call_expression "(*(code *)ppuVar2)()" (parenthesized_expression "(*(code *)ppuVar2)" (( "(") (pointer_expression "*(code *)ppuVar2" (* "*") (cast_expression "(code *)ppuVar2" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar2"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "param_1[5] = param_1[5] + 1;" (assignment_expression "param_1[5] = param_1[5] + 1" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (= "=") (binary_expression "param_1[5] + 1" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (expression_statement "iVar8 = *(int *)*param_1;" (assignment_expression "iVar8 = *(int *)*param_1" (identifier "iVar8") (= "=") (pointer_expression "*(int *)*param_1" (* "*") (cast_expression "(int *)*param_1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1"))))) (; ";")) (expression_statement "*(int **)((int)piVar10 + -0x10) = (int *)*param_1;" (assignment_expression "*(int **)((int)piVar10 + -0x10) = (int *)*param_1" (pointer_expression "*(int **)((int)piVar10 + -0x10)" (* "*") (cast_expression "(int **)((int)piVar10 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar10 + -0x10)" (( "(") (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (cast_expression "(int *)*param_1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (expression_statement "pcVar3 = *(code **)(iVar8 + 0xc);" (assignment_expression "pcVar3 = *(code **)(iVar8 + 0xc)" (identifier "pcVar3") (= "=") (pointer_expression "*(code **)(iVar8 + 0xc)" (* "*") (cast_expression "(code **)(iVar8 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar8 + 0xc)" (( "(") (binary_expression "iVar8 + 0xc" (identifier "iVar8") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x190f95;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x190f95" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + -0x14)" (( "(") (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x190f95")) (; ";")) (expression_statement "(*pcVar3)();" (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" (( "(") (pointer_expression "*pcVar3" (* "*") (identifier "pcVar3")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "ppuVar2 = *(undefined ***)(*piVar4 + 4);" (assignment_expression "ppuVar2 = *(undefined ***)(*piVar4 + 4)" (identifier "ppuVar2") (= "=") (pointer_expression "*(undefined ***)(*piVar4 + 4)" (* "*") (cast_expression "(undefined ***)(*piVar4 + 4)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(*piVar4 + 4)" (( "(") (binary_expression "*piVar4 + 4" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (ppuVar2 == local_90 + -0xc8ab8) {\n      *piVar4 = (int)(local_90 + -0x307b);\n      piVar7 = (int *)piVar4[9];\n      if (piVar7 != (int *)0x0) {\n        iVar8 = *piVar7;\n        *(int **)((int)piVar10 + -0x10) = piVar7;\n        pcVar3 = *(code **)(iVar8 + 4);\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x190fc9;\n        (*pcVar3)();\n      }\n      iVar8 = piVar4[10];\n      if (iVar8 != 0) {\n        if (*(int *)(iVar8 + 4) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 100;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915d4;\n          FUN_00069d00();\n        }\n        if (*(int *)(iVar8 + 8) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x65;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined1 **)((int)piVar10 + -0x14) = &LAB_001915f2;\n          FUN_00069d00();\n        }\n        if ((*(int *)(iVar8 + 0xc) != 0) || (*(int *)(iVar8 + 0x10) != 0)) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d215;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x2c;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915b6;\n          FUN_00069d00();\n        }\n        *(undefined4 *)((int)piVar10 + -0xc) = 0x14;\n        *(int *)((int)piVar10 + -0x10) = iVar8;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191010;\n        FUN_001e6d90();\n      }\n      *piVar4 = (int)(local_90 + -0x1717);\n      if ((int *)piVar4[2] != piVar4 + 4) {\n        *(int **)((int)piVar10 + -0x10) = (int *)piVar4[2];\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191034;\n        FUN_001e6db0();\n      }\n      *(undefined4 *)((int)piVar10 + -0xc) = 0x30;\n      *(int **)((int)piVar10 + -0x10) = piVar4;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191048;\n      FUN_001e6d90();\n      piVar4 = local_98;\n    }\n    else {\n      *(int **)((int)piVar10 + -0x10) = piVar4;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x1913d6;\n      (*(code *)ppuVar2)();\n      piVar4 = local_98;\n    }" (if "if") (parenthesized_expression "(ppuVar2 == local_90 + -0xc8ab8)" (( "(") (binary_expression "ppuVar2 == local_90 + -0xc8ab8" (identifier "ppuVar2") (== "==") (binary_expression "local_90 + -0xc8ab8" (identifier "local_90") (+ "+") (number_literal "-0xc8ab8"))) () ")")) (compound_statement "{\n      *piVar4 = (int)(local_90 + -0x307b);\n      piVar7 = (int *)piVar4[9];\n      if (piVar7 != (int *)0x0) {\n        iVar8 = *piVar7;\n        *(int **)((int)piVar10 + -0x10) = piVar7;\n        pcVar3 = *(code **)(iVar8 + 4);\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x190fc9;\n        (*pcVar3)();\n      }\n      iVar8 = piVar4[10];\n      if (iVar8 != 0) {\n        if (*(int *)(iVar8 + 4) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 100;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915d4;\n          FUN_00069d00();\n        }\n        if (*(int *)(iVar8 + 8) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x65;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined1 **)((int)piVar10 + -0x14) = &LAB_001915f2;\n          FUN_00069d00();\n        }\n        if ((*(int *)(iVar8 + 0xc) != 0) || (*(int *)(iVar8 + 0x10) != 0)) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d215;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x2c;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915b6;\n          FUN_00069d00();\n        }\n        *(undefined4 *)((int)piVar10 + -0xc) = 0x14;\n        *(int *)((int)piVar10 + -0x10) = iVar8;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191010;\n        FUN_001e6d90();\n      }\n      *piVar4 = (int)(local_90 + -0x1717);\n      if ((int *)piVar4[2] != piVar4 + 4) {\n        *(int **)((int)piVar10 + -0x10) = (int *)piVar4[2];\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191034;\n        FUN_001e6db0();\n      }\n      *(undefined4 *)((int)piVar10 + -0xc) = 0x30;\n      *(int **)((int)piVar10 + -0x10) = piVar4;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x191048;\n      FUN_001e6d90();\n      piVar4 = local_98;\n    }" ({ "{") (expression_statement "*piVar4 = (int)(local_90 + -0x307b);" (assignment_expression "*piVar4 = (int)(local_90 + -0x307b)" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (= "=") (cast_expression "(int)(local_90 + -0x307b)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(local_90 + -0x307b)" (( "(") (binary_expression "local_90 + -0x307b" (identifier "local_90") (+ "+") (number_literal "-0x307b")) () ")")))) (; ";")) (expression_statement "piVar7 = (int *)piVar4[9];" (assignment_expression "piVar7 = (int *)piVar4[9]" (identifier "piVar7") (= "=") (cast_expression "(int *)piVar4[9]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar4[9]" (identifier "piVar4") ([ "[") (number_literal "9") (] "]")))) (; ";")) (if_statement "if (piVar7 != (int *)0x0) {\n        iVar8 = *piVar7;\n        *(int **)((int)piVar10 + -0x10) = piVar7;\n        pcVar3 = *(code **)(iVar8 + 4);\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x190fc9;\n        (*pcVar3)();\n      }" (if "if") (parenthesized_expression "(piVar7 != (int *)0x0)" (( "(") (binary_expression "piVar7 != (int *)0x0" (identifier "piVar7") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        iVar8 = *piVar7;\n        *(int **)((int)piVar10 + -0x10) = piVar7;\n        pcVar3 = *(code **)(iVar8 + 4);\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x190fc9;\n        (*pcVar3)();\n      }" ({ "{") (expression_statement "iVar8 = *piVar7;" (assignment_expression "iVar8 = *piVar7" (identifier "iVar8") (= "=") (pointer_expression "*piVar7" (* "*") (identifier "piVar7"))) (; ";")) (expression_statement "*(int **)((int)piVar10 + -0x10) = piVar7;" (assignment_expression "*(int **)((int)piVar10 + -0x10) = piVar7" (pointer_expression "*(int **)((int)piVar10 + -0x10)" (* "*") (cast_expression "(int **)((int)piVar10 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar10 + -0x10)" (( "(") (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "piVar7")) (; ";")) (expression_statement "pcVar3 = *(code **)(iVar8 + 4);" (assignment_expression "pcVar3 = *(code **)(iVar8 + 4)" (identifier "pcVar3") (= "=") (pointer_expression "*(code **)(iVar8 + 4)" (* "*") (cast_expression "(code **)(iVar8 + 4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar8 + 4)" (( "(") (binary_expression "iVar8 + 4" (identifier "iVar8") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x190fc9;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x190fc9" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + -0x14)" (( "(") (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x190fc9")) (; ";")) (expression_statement "(*pcVar3)();" (call_expression "(*pcVar3)()" (parenthesized_expression "(*pcVar3)" (( "(") (pointer_expression "*pcVar3" (* "*") (identifier "pcVar3")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar8 = piVar4[10];" (assignment_expression "iVar8 = piVar4[10]" (identifier "iVar8") (= "=") (subscript_expression "piVar4[10]" (identifier "piVar4") ([ "[") (number_literal "10") (] "]"))) (; ";")) (if_statement "if (iVar8 != 0) {\n        if (*(int *)(iVar8 + 4) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 100;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915d4;\n          FUN_00069d00();\n        }\n        if (*(int *)(iVar8 + 8) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x65;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined1 **)((int)piVar10 + -0x14) = &LAB_001915f2;\n          FUN_00069d00();\n        }\n        if ((*(int *)(iVar8 + 0xc) != 0) || (*(int *)(iVar8 + 0x10) != 0)) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d215;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x2c;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915b6;\n          FUN_00069d00();\n        }\n        *(undefined4 *)((int)piVar10 + -0xc) = 0x14;\n        *(int *)((int)piVar10 + -0x10) = iVar8;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191010;\n        FUN_001e6d90();\n      }" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        if (*(int *)(iVar8 + 4) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 100;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915d4;\n          FUN_00069d00();\n        }\n        if (*(int *)(iVar8 + 8) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x65;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined1 **)((int)piVar10 + -0x14) = &LAB_001915f2;\n          FUN_00069d00();\n        }\n        if ((*(int *)(iVar8 + 0xc) != 0) || (*(int *)(iVar8 + 0x10) != 0)) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d215;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x2c;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915b6;\n          FUN_00069d00();\n        }\n        *(undefined4 *)((int)piVar10 + -0xc) = 0x14;\n        *(int *)((int)piVar10 + -0x10) = iVar8;\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191010;\n        FUN_001e6d90();\n      }" ({ "{") (if_statement "if (*(int *)(iVar8 + 4) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 100;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915d4;\n          FUN_00069d00();\n        }" (if "if") (parenthesized_expression "(*(int *)(iVar8 + 4) != 0)" (( "(") (binary_expression "*(int *)(iVar8 + 4) != 0" (pointer_expression "*(int *)(iVar8 + 4)" (* "*") (cast_expression "(int *)(iVar8 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 4)" (( "(") (binary_expression "iVar8 + 4" (identifier "iVar8") (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 100;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915d4;\n          FUN_00069d00();\n        }" ({ "{") (expression_statement "*(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;" (assignment_expression "*(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e" (pointer_expression "*(undefined ***)((int)piVar10 + -8)" (* "*") (cast_expression "(undefined ***)((int)piVar10 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)piVar10 + -8)" (( "(") (binary_expression "(int)piVar10 + -8" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_90 + -0x3d22e" (identifier "local_90") (+ "+") (number_literal "-0x3d22e"))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar10 + -0xc) = 100;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0xc) = 100" (pointer_expression "*(undefined4 *)((int)piVar10 + -0xc)" (* "*") (cast_expression "(undefined4 *)((int)piVar10 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + -0xc)" (( "(") (binary_expression "(int)piVar10 + -0xc" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "100")) (; ";")) (expression_statement "*(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;" (assignment_expression "*(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43" (pointer_expression "*(int *)((int)piVar10 + -0x10)" (* "*") (cast_expression "(int *)((int)piVar10 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + -0x10)" (( "(") (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_90 + -0x10ea43" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (+ "+") (number_literal "-0x10ea43"))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x1915d4;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x1915d4" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + -0x14)" (( "(") (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1915d4")) (; ";")) (expression_statement "FUN_00069d00();" (call_expression "FUN_00069d00()" (identifier "FUN_00069d00") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar8 + 8) != 0) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x65;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined1 **)((int)piVar10 + -0x14) = &LAB_001915f2;\n          FUN_00069d00();\n        }" (if "if") (parenthesized_expression "(*(int *)(iVar8 + 8) != 0)" (( "(") (binary_expression "*(int *)(iVar8 + 8) != 0" (pointer_expression "*(int *)(iVar8 + 8)" (* "*") (cast_expression "(int *)(iVar8 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 8)" (( "(") (binary_expression "iVar8 + 8" (identifier "iVar8") (+ "+") (number_literal "8")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x65;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined1 **)((int)piVar10 + -0x14) = &LAB_001915f2;\n          FUN_00069d00();\n        }" ({ "{") (expression_statement "*(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;" (assignment_expression "*(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e" (pointer_expression "*(undefined ***)((int)piVar10 + -8)" (* "*") (cast_expression "(undefined ***)((int)piVar10 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)piVar10 + -8)" (( "(") (binary_expression "(int)piVar10 + -8" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_90 + -0x3d22e" (identifier "local_90") (+ "+") (number_literal "-0x3d22e"))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar10 + -0xc) = 0x65;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0xc) = 0x65" (pointer_expression "*(undefined4 *)((int)piVar10 + -0xc)" (* "*") (cast_expression "(undefined4 *)((int)piVar10 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + -0xc)" (( "(") (binary_expression "(int)piVar10 + -0xc" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x65")) (; ";")) (expression_statement "*(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;" (assignment_expression "*(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43" (pointer_expression "*(int *)((int)piVar10 + -0x10)" (* "*") (cast_expression "(int *)((int)piVar10 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + -0x10)" (( "(") (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_90 + -0x10ea43" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (+ "+") (number_literal "-0x10ea43"))) (; ";")) (expression_statement "*(undefined1 **)((int)piVar10 + -0x14) = &LAB_001915f2;" (assignment_expression "*(undefined1 **)((int)piVar10 + -0x14) = &LAB_001915f2" (pointer_expression "*(undefined1 **)((int)piVar10 + -0x14)" (* "*") (cast_expression "(undefined1 **)((int)piVar10 + -0x14)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar10 + -0x14)" (( "(") (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&LAB_001915f2" (& "&") (identifier "LAB_001915f2"))) (; ";")) (expression_statement "FUN_00069d00();" (call_expression "FUN_00069d00()" (identifier "FUN_00069d00") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if ((*(int *)(iVar8 + 0xc) != 0) || (*(int *)(iVar8 + 0x10) != 0)) {\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d215;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x2c;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915b6;\n          FUN_00069d00();\n        }" (if "if") (parenthesized_expression "((*(int *)(iVar8 + 0xc) != 0) || (*(int *)(iVar8 + 0x10) != 0))" (( "(") (binary_expression "(*(int *)(iVar8 + 0xc) != 0) || (*(int *)(iVar8 + 0x10) != 0)" (parenthesized_expression "(*(int *)(iVar8 + 0xc) != 0)" (( "(") (binary_expression "*(int *)(iVar8 + 0xc) != 0" (pointer_expression "*(int *)(iVar8 + 0xc)" (* "*") (cast_expression "(int *)(iVar8 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0xc)" (( "(") (binary_expression "iVar8 + 0xc" (identifier "iVar8") (+ "+") (number_literal "0xc")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(int *)(iVar8 + 0x10) != 0)" (( "(") (binary_expression "*(int *)(iVar8 + 0x10) != 0" (pointer_expression "*(int *)(iVar8 + 0x10)" (* "*") (cast_expression "(int *)(iVar8 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x10)" (( "(") (binary_expression "iVar8 + 0x10" (identifier "iVar8") (+ "+") (number_literal "0x10")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d215;\n          *(undefined4 *)((int)piVar10 + -0xc) = 0x2c;\n          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;\n                    \n          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915b6;\n          FUN_00069d00();\n        }" ({ "{") (expression_statement "*(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d215;" (assignment_expression "*(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d215" (pointer_expression "*(undefined ***)((int)piVar10 + -8)" (* "*") (cast_expression "(undefined ***)((int)piVar10 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)piVar10 + -8)" (( "(") (binary_expression "(int)piVar10 + -8" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "local_90 + -0x3d215" (identifier "local_90") (+ "+") (number_literal "-0x3d215"))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar10 + -0xc) = 0x2c;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0xc) = 0x2c" (pointer_expression "*(undefined4 *)((int)piVar10 + -0xc)" (* "*") (cast_expression "(undefined4 *)((int)piVar10 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + -0xc)" (( "(") (binary_expression "(int)piVar10 + -0xc" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x2c")) (; ";")) (expression_statement "*(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;" (assignment_expression "*(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43" (pointer_expression "*(int *)((int)piVar10 + -0x10)" (* "*") (cast_expression "(int *)((int)piVar10 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + -0x10)" (( "(") (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "(int)local_90 + -0x10ea43" (cast_expression "(int)local_90" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_90")) (+ "+") (number_literal "-0x10ea43"))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x1915b6;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x1915b6" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + -0x14)" (( "(") (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1915b6")) (; ";")) (expression_statement "FUN_00069d00();" (call_expression "FUN_00069d00()" (identifier "FUN_00069d00") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "*(undefined4 *)((int)piVar10 + -0xc) = 0x14;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0xc) = 0x14" (pointer_expression "*(undefined4 *)((int)piVar10 + -0xc)" (* "*") (cast_expression "(undefined4 *)((int)piVar10 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + -0xc)" (( "(") (binary_expression "(int)piVar10 + -0xc" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x14")) (; ";")) (expression_statement "*(int *)((int)piVar10 + -0x10) = iVar8;" (assignment_expression "*(int *)((int)piVar10 + -0x10) = iVar8" (pointer_expression "*(int *)((int)piVar10 + -0x10)" (* "*") (cast_expression "(int *)((int)piVar10 + -0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + -0x10)" (( "(") (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "iVar8")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x191010;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x191010" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + -0x14)" (( "(") (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x191010")) (; ";")) (expression_statement "FUN_001e6d90();" (call_expression "FUN_001e6d90()" (identifier "FUN_001e6d90") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "*piVar4 = (int)(local_90 + -0x1717);" (assignment_expression "*piVar4 = (int)(local_90 + -0x1717)" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (= "=") (cast_expression "(int)(local_90 + -0x1717)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(local_90 + -0x1717)" (( "(") (binary_expression "local_90 + -0x1717" (identifier "local_90") (+ "+") (number_literal "-0x1717")) () ")")))) (; ";")) (if_statement "if ((int *)piVar4[2] != piVar4 + 4) {\n        *(int **)((int)piVar10 + -0x10) = (int *)piVar4[2];\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191034;\n        FUN_001e6db0();\n      }" (if "if") (parenthesized_expression "((int *)piVar4[2] != piVar4 + 4)" (( "(") (binary_expression "(int *)piVar4[2] != piVar4 + 4" (cast_expression "(int *)piVar4[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar4[2]" (identifier "piVar4") ([ "[") (number_literal "2") (] "]"))) (!= "!=") (binary_expression "piVar4 + 4" (identifier "piVar4") (+ "+") (number_literal "4"))) () ")")) (compound_statement "{\n        *(int **)((int)piVar10 + -0x10) = (int *)piVar4[2];\n        *(undefined4 *)((int)piVar10 + -0x14) = 0x191034;\n        FUN_001e6db0();\n      }" ({ "{") (expression_statement "*(int **)((int)piVar10 + -0x10) = (int *)piVar4[2];" (assignment_expression "*(int **)((int)piVar10 + -0x10) = (int *)piVar4[2]" (pointer_expression "*(int **)((int)piVar10 + -0x10)" (* "*") (cast_expression "(int **)((int)piVar10 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar10 + -0x10)" (( "(") (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (cast_expression "(int *)piVar4[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar4[2]" (identifier "piVar4") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x191034;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x191034" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + -0x14)" (( "(") (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x191034")) (; ";")) (expression_statement "FUN_001e6db0();" (call_expression "FUN_001e6db0()" (identifier "FUN_001e6db0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "*(undefined4 *)((int)piVar10 + -0xc) = 0x30;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0xc) = 0x30" (pointer_expression "*(undefined4 *)((int)piVar10 + -0xc)" (* "*") (cast_expression "(undefined4 *)((int)piVar10 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + -0xc)" (( "(") (binary_expression "(int)piVar10 + -0xc" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x30")) (; ";")) (expression_statement "*(int **)((int)piVar10 + -0x10) = piVar4;" (assignment_expression "*(int **)((int)piVar10 + -0x10) = piVar4" (pointer_expression "*(int **)((int)piVar10 + -0x10)" (* "*") (cast_expression "(int **)((int)piVar10 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar10 + -0x10)" (( "(") (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "piVar4")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x191048;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x191048" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + -0x14)" (( "(") (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x191048")) (; ";")) (expression_statement "FUN_001e6d90();" (call_expression "FUN_001e6d90()" (identifier "FUN_001e6d90") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar4 = local_98;" (assignment_expression "piVar4 = local_98" (identifier "piVar4") (= "=") (identifier "local_98")) (; ";")) (} "}")) (else_clause "else {\n      *(int **)((int)piVar10 + -0x10) = piVar4;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x1913d6;\n      (*(code *)ppuVar2)();\n      piVar4 = local_98;\n    }" (else "else") (compound_statement "{\n      *(int **)((int)piVar10 + -0x10) = piVar4;\n      *(undefined4 *)((int)piVar10 + -0x14) = 0x1913d6;\n      (*(code *)ppuVar2)();\n      piVar4 = local_98;\n    }" ({ "{") (expression_statement "*(int **)((int)piVar10 + -0x10) = piVar4;" (assignment_expression "*(int **)((int)piVar10 + -0x10) = piVar4" (pointer_expression "*(int **)((int)piVar10 + -0x10)" (* "*") (cast_expression "(int **)((int)piVar10 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar10 + -0x10)" (( "(") (binary_expression "(int)piVar10 + -0x10" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "piVar4")) (; ";")) (expression_statement "*(undefined4 *)((int)piVar10 + -0x14) = 0x1913d6;" (assignment_expression "*(undefined4 *)((int)piVar10 + -0x14) = 0x1913d6" (pointer_expression "*(undefined4 *)((int)piVar10 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar10 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar10 + -0x14)" (( "(") (binary_expression "(int)piVar10 + -0x14" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x1913d6")) (; ";")) (expression_statement "(*(code *)ppuVar2)();" (call_expression "(*(code *)ppuVar2)()" (parenthesized_expression "(*(code *)ppuVar2)" (( "(") (pointer_expression "*(code *)ppuVar2" (* "*") (cast_expression "(code *)ppuVar2" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar2"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar4 = local_98;" (assignment_expression "piVar4 = local_98" (identifier "piVar4") (= "=") (identifier "local_98")) (; ";")) (} "}")))) (expression_statement "local_98 = piVar4;" (assignment_expression "local_98 = piVar4" (identifier "local_98") (= "=") (identifier "piVar4")) (; ";")) (if_statement "if (piVar4 == (int *)0x0) {\n      return 1;\n    }" (if "if") (parenthesized_expression "(piVar4 == (int *)0x0)" (( "(") (binary_expression "piVar4 == (int *)0x0" (identifier "piVar4") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      return 1;\n    }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* DWARF original prototype: bool find_and_run_task(Workqueue * this, int thread_number) */

bool __thiscall gold::type_1::function_1(type_1 *this,int thread_number)

{
  type_2 *pLVar1;
  type_3 *var_36;
  int *var_5;
  type_4 **var_6;
  type_5 sVar5;
  type_6 **var_35;
  type_6 *var_23;
  type_7 *pcVar8;
  type_8 *var_25;
  type_3 *var_2;
  type_9 pcVar11;
  size_t var_10;
  type_9 var_7;
  type_10 _Var14;
  type_9 *ppcVar15;
  type_9 var_29;
  type_5 *var_30;
  int local_c4;
  int local_c0;
  int local_bc;
  type_8 local_b8;
  int local_b4;
  type_9 var_9;
  type_4 **var_4;
  long *var_13;
  type_4 **var_22;
  type_11 *local_a0;
  type_12 *local_9c;
  type_3 *var_33;
  type_4 **local_94;
  type_4 **var_3;
  int var_28;
  int var_27;
  int var_26;
  type_11 tl;
  type_10 local_64;
  type_5 var_31;
  type_5 local_5c [4];
  type_12 timer;
  
  var_3 = &_GLOBAL_OFFSET_TABLE_;
  tl.count_ = 0;
  pLVar1 = (this->lock_).lock_;
  (*pLVar1->_vptr_Lock_impl[2])(pLVar1);
                    /* try { // try from 00190eb4 to 00190eb8 has its CatchHandler @ 001915f2 */
  var_2 = var_1(this,thread_number);
  if (var_2 == (type_3 *)0x0) {
    pLVar1 = (this->lock_).lock_;
    (*pLVar1->_vptr_Lock_impl[3])(pLVar1);
    return false;
  }
  local_a0 = &tl;
  var_4 = var_3 + -0xc8b40;
  if ((type_4 **)var_2->_vptr_Task[3] != var_4) {
                    /* try { // try from 00191525 to 00191526 has its CatchHandler @ 001915f2 */
    (*var_2->_vptr_Task[3])(var_2,local_a0);
  }
  ppcVar15 = &var_29;
  pLVar1 = (this->lock_).lock_;
  this->running_ = this->running_ + 1;
  (*pLVar1->_vptr_Lock_impl[3])(pLVar1);
  local_94 = var_3 + 0xde;
  var_22 = var_3 + -0xc8b3c;
  var_13 = &timer.start_time_.wall;
  local_9c = &timer;
  do {
    var_5 = (int *)*local_94;
    if ((var_5[2] != 0) && ((*(type_13 *)(var_5 + 5) & 1) != 0)) {
      var_33 = (type_3 *)*var_5;
      if ((var_2->name_)._M_string_length == 0) {
        var_6 = (type_4 **)var_2->_vptr_Task[5];
        if (var_6 == var_3 + -0xc8a2c) {
          var_7 = var_2[1].name_._M_dataplus._M_p;
          timer.start_time_.user = (long)var_13;
          pcVar11 = (type_9)0xffffffff;
          if (var_7 != (type_9)0x0) {
            *(type_9 *)((int)ppcVar15 + -0x10) = var_7;
            *(type_8 *)((int)ppcVar15 + -0x14) = 0x1910c6;
            var_9 = var_7;
            var_10 = var_8(*(char **)((int)ppcVar15 + -0x10));
            pcVar11 = var_9 + var_10;
            var_7 = var_9;
          }
          *(type_8 *)((int)ppcVar15 + -4) = 0;
          *(type_9 *)((int)ppcVar15 + -8) = pcVar11;
          *(type_9 *)((int)ppcVar15 + -0xc) = var_7;
          *(type_12 **)((int)ppcVar15 + -0x10) = local_9c;
          *(type_8 *)((int)ppcVar15 + -0x14) = 0x1910e0;
          std::__cxx11::basic_string<var_16,_std::char_traits<var_16>,_std::var_15<var_16>var_17>::
          var_11<var_12*>();
        }
        else {
          *(type_3 **)((int)ppcVar15 + -0xc) = var_2;
          *(type_12 **)((int)ppcVar15 + -0x10) = local_9c;
          *(type_8 *)((int)ppcVar15 + -0x14) = 0x1914bc;
          (*(type_7 *)var_6)();
          ppcVar15 = (type_9 *)((int)ppcVar15 + -4);
        }
        var_7 = (var_2->name_)._M_dataplus._M_p;
        if ((long *)timer.start_time_.user == var_13) {
          if (timer.start_time_.sys != 0) {
            if (timer.start_time_.sys == 1) {
              *var_7 = (char)timer.start_time_.wall;
              var_7 = (var_2->name_)._M_dataplus._M_p;
            }
            else {
              *(long *)((int)ppcVar15 + -8) = timer.start_time_.sys;
              *(long **)((int)ppcVar15 + -0xc) = var_13;
              *(type_9 *)((int)ppcVar15 + -0x10) = var_7;
              *(type_8 *)((int)ppcVar15 + -0x14) = 0x19146f;
              var_14(*(void **)((int)ppcVar15 + -0x10),*(void **)((int)ppcVar15 + -0xc),
                     *(size_t *)((int)ppcVar15 + -8));
              var_7 = (var_2->name_)._M_dataplus._M_p;
            }
          }
          (var_2->name_)._M_string_length = timer.start_time_.sys;
          var_7[timer.start_time_.sys] = '\0';
          sVar5 = timer.start_time_.wall;
        }
        else {
          if ((anon_union_16_2_edb7204a_for_basic_string<var_16,_std::char_traits<var_16>,_std::var_15<var_16>var_17>var_18
               *)var_7 == &(var_2->name_).field_2) {
            (var_2->name_)._M_dataplus._M_p = (type_9)timer.start_time_.user;
            (var_2->name_)._M_string_length = timer.start_time_.sys;
            (var_2->name_).field_2._M_allocated_capacity = timer.start_time_.wall;
          }
          else {
            (var_2->name_)._M_dataplus._M_p = (type_9)timer.start_time_.user;
            sVar5 = (var_2->name_).field_2._M_allocated_capacity;
            (var_2->name_)._M_string_length = timer.start_time_.sys;
            (var_2->name_).field_2._M_allocated_capacity = timer.start_time_.wall;
            timer.start_time_.user = (long)var_7;
            if (var_7 != (type_9)0x0) goto LAB_00191120;
          }
          timer.start_time_.user = (long)var_13;
          sVar5 = timer.start_time_.wall;
        }
LAB_00191120:
        timer.start_time_.wall = sVar5;
        timer.start_time_.sys = 0;
        *(type_14 *)timer.start_time_.user = 0;
        if ((long *)timer.start_time_.user != var_13) {
          *(long *)((int)ppcVar15 + -0x10) = timer.start_time_.user;
          *(type_8 *)((int)ppcVar15 + -0x14) = 0x191144;
          var_19(*(void **)((int)ppcVar15 + -0x10));
        }
      }
      *(type_9 *)((int)ppcVar15 + -4) = (var_2->name_)._M_dataplus._M_p;
      *(int *)((int)ppcVar15 + -8) = thread_number;
      *(int *)((int)ppcVar15 + -0xc) = (int)var_3 + -0xf4943;
      *(type_3 **)((int)ppcVar15 + -0x10) = var_33;
      *(type_8 *)((int)ppcVar15 + -0x14) = 0x191165;
      Errors::var_20(*(type_15 **)((int)ppcVar15 + -0x10),*(char **)((int)ppcVar15 + -0xc));
    }
    *(type_12 **)((int)ppcVar15 + -0x10) = local_9c;
    *(type_8 *)((int)ppcVar15 + -0x14) = 0x19117c;
    Timer::type_12(*(type_12 **)((int)ppcVar15 + -0x10));
    if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {
      *(type_12 **)((int)ppcVar15 + -0x10) = local_9c;
      *(type_8 *)((int)ppcVar15 + -0x14) = 0x1911a8;
      Timer::var_21(*(type_12 **)((int)ppcVar15 + -0x10));
    }
    var_6 = (type_4 **)var_2->_vptr_Task[4];
    if (var_6 == var_22) {
      var_35 = var_2[1]._vptr_Task;
      var_23 = *var_35;
      *(type_3 **)((int)ppcVar15 + -8) = var_2;
      *(type_1 **)((int)ppcVar15 + -0xc) = this;
      *(type_6 ***)((int)ppcVar15 + -0x10) = var_35;
      pcVar8 = *(type_7 **)(var_23 + 8);
      *(type_8 *)((int)ppcVar15 + -0x14) = 0x1911ca;
      (*pcVar8)();
    }
    else {
      *(type_1 **)((int)ppcVar15 + -0xc) = this;
      *(type_3 **)((int)ppcVar15 + -0x10) = var_2;
      *(type_8 *)((int)ppcVar15 + -0x14) = 0x1913ff;
      (*(type_7 *)var_6)();
    }
    if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {
      *(type_12 **)((int)ppcVar15 + -0xc) = local_9c;
      *(int **)((int)ppcVar15 + -0x10) = &var_28;
      *(type_8 *)((int)ppcVar15 + -0x14) = 0x191202;
      Timer::var_24(*(type_12 **)((int)ppcVar15 + -0xc));
      var_25 = (type_8 *)*local_94;
      if ((var_25[2] != 0) && ((*(type_13 *)(var_25 + 5) & 1) != 0)) {
        local_b8 = *var_25;
        local_bc = var_26 / 1000;
        var_33 = (type_3 *)((var_26 % 1000) * 1000);
        local_c0 = var_27 / 1000;
        var_9 = (type_9)((var_27 % 1000) * 1000);
        local_c4 = var_28 / 1000;
        local_b4 = (var_28 % 1000) * 1000;
        if ((var_2->name_)._M_string_length == 0) {
          var_6 = (type_4 **)var_2->_vptr_Task[5];
          if (var_6 == var_3 + -0xc8a2c) {
            var_7 = var_2[1].name_._M_dataplus._M_p;
            var_30 = local_5c;
            pcVar11 = (type_9)0xffffffff;
            local_64._M_p = (type_9)var_30;
            if (var_7 != (type_9)0x0) {
              *(type_9 *)((int)ppcVar15 + -0x10) = var_7;
              *(type_8 *)((int)ppcVar15 + -0x14) = 0x1912ff;
              var_29 = var_7;
              var_10 = var_8(*(char **)((int)ppcVar15 + -0x10));
              pcVar11 = var_29 + var_10;
              var_7 = var_29;
            }
            *(type_8 *)((int)ppcVar15 + -4) = 0;
            *(type_9 *)((int)ppcVar15 + -8) = pcVar11;
            *(type_9 *)((int)ppcVar15 + -0xc) = var_7;
            *(type_10 **)((int)ppcVar15 + -0x10) = &local_64;
            *(type_8 *)((int)ppcVar15 + -0x14) = 0x191317;
            std::__cxx11::basic_string<var_16,_std::char_traits<var_16>,_std::var_15<var_16>var_17>::
            var_11<var_12*>();
          }
          else {
            *(type_3 **)((int)ppcVar15 + -0xc) = var_2;
            *(type_10 **)((int)ppcVar15 + -0x10) = &local_64;
            *(type_8 *)((int)ppcVar15 + -0x14) = 0x191579;
            (*(type_7 *)var_6)();
            var_30 = local_5c;
            ppcVar15 = (type_9 *)((int)ppcVar15 + -4);
          }
          _Var14._M_p = (var_2->name_)._M_dataplus._M_p;
          if ((type_5 *)local_64._M_p == var_30) {
            if (var_31 != 0) {
              if (var_31 == 1) {
                *_Var14._M_p = (char)local_5c[0];
                _Var14._M_p = (var_2->name_)._M_dataplus._M_p;
              }
              else {
                *(type_5 *)((int)ppcVar15 + -8) = var_31;
                *(type_5 **)((int)ppcVar15 + -0xc) = var_30;
                *(type_9 *)((int)ppcVar15 + -0x10) = _Var14._M_p;
                *(type_8 *)((int)ppcVar15 + -0x14) = 0x19154f;
                var_14(*(void **)((int)ppcVar15 + -0x10),*(void **)((int)ppcVar15 + -0xc),
                       *(size_t *)((int)ppcVar15 + -8));
                _Var14._M_p = (var_2->name_)._M_dataplus._M_p;
              }
            }
            (var_2->name_)._M_string_length = var_31;
            *(_Var14._M_p + var_31) = '\0';
            _Var14._M_p = local_64._M_p;
            sVar5 = local_5c[0];
          }
          else {
            if ((anon_union_16_2_edb7204a_for_basic_string<var_16,_std::char_traits<var_16>,_std::var_15<var_16>var_17>var_18
                 *)_Var14._M_p == &(var_2->name_).field_2) {
              (var_2->name_)._M_dataplus._M_p = local_64._M_p;
              (var_2->name_)._M_string_length = var_31;
              (var_2->name_).field_2._M_allocated_capacity = local_5c[0];
            }
            else {
              (var_2->name_)._M_dataplus._M_p = local_64._M_p;
              sVar5 = (var_2->name_).field_2._M_allocated_capacity;
              (var_2->name_)._M_string_length = var_31;
              (var_2->name_).field_2._M_allocated_capacity = local_5c[0];
              local_64._M_p = _Var14._M_p;
              if ((type_5 *)_Var14._M_p != (type_5 *)0x0) goto LAB_00191357;
            }
            local_64._M_p = (type_9)var_30;
            var_30 = local_5c;
            _Var14._M_p = (type_9)var_30;
            sVar5 = local_5c[0];
          }
LAB_00191357:
          local_5c[0] = sVar5;
          var_31 = 0;
          *_Var14._M_p = '\0';
          if ((type_5 *)local_64._M_p != var_30) {
            *(type_9 *)((int)ppcVar15 + -0x10) = local_64._M_p;
            *(type_8 *)((int)ppcVar15 + -0x14) = 0x19137b;
            var_19(*(void **)((int)ppcVar15 + -0x10));
          }
        }
        *(type_3 **)((int)ppcVar15 + -0xc) = var_33;
        *(int *)((int)ppcVar15 + -0x10) = local_bc;
        *(type_9 *)((int)ppcVar15 + -0x14) = var_9;
        *(int *)((int)ppcVar15 + -0x18) = local_c0;
        *(int *)((int)ppcVar15 + -0x1c) = local_b4;
        *(int *)((int)ppcVar15 + -0x20) = local_c4;
        *(type_9 *)((int)ppcVar15 + -0x24) = (var_2->name_)._M_dataplus._M_p;
        *(int *)((int)ppcVar15 + -0x28) = thread_number;
        *(type_4 ***)((int)ppcVar15 + -0x2c) = var_3 + -0x3d24b;
        *(type_8 *)((int)ppcVar15 + -0x30) = local_b8;
        *(type_8 *)((int)ppcVar15 + -0x34) = 0x1913c3;
        Errors::var_20(*(type_15 **)((int)ppcVar15 + -0x30),*(char **)((int)ppcVar15 + -0x2c));
      }
    }
    pLVar1 = (this->lock_).lock_;
    var_35 = pLVar1->_vptr_Lock_impl;
    *(type_2 **)((int)ppcVar15 + -0x10) = pLVar1;
    var_23 = var_35[2];
    *(type_8 *)((int)ppcVar15 + -0x14) = 0x190f43;
    (*var_23)();
    this->running_ = this->running_ + -1;
    *(type_11 **)((int)ppcVar15 + -8) = local_a0;
    *(type_3 **)((int)ppcVar15 + -0xc) = var_2;
    *(type_1 **)((int)ppcVar15 + -0x10) = this;
                    /* try { // try from 00190f52 to 00190f56 has its CatchHandler @ 001915f9 */
    *(type_8 *)((int)ppcVar15 + -0x14) = 0x190f57;
    var_33 = var_32(*(type_1 **)((int)ppcVar15 + -0x10),*(type_3 **)((int)ppcVar15 + -0xc)
                             ,*(type_11 **)((int)ppcVar15 + -8));
    if (var_33 == (type_3 *)0x0) {
      *(type_1 **)((int)ppcVar15 + -0x10) = this;
                    /* try { // try from 00191414 to 00191440 has its CatchHandler @ 001915f9 */
      *(type_8 *)((int)ppcVar15 + -0x14) = 0x191419;
      var_33 = var_34(*(type_1 **)((int)ppcVar15 + -0x10));
      if (var_33 != (type_3 *)0x0) goto LAB_00190f68;
    }
    else {
LAB_00190f68:
      tl.count_ = 0;
      var_6 = (type_4 **)var_33->_vptr_Task[3];
      if (var_6 != var_4) {
        *(type_11 **)((int)ppcVar15 + -0xc) = local_a0;
        *(type_3 **)((int)ppcVar15 + -0x10) = var_33;
        *(type_8 *)((int)ppcVar15 + -0x14) = 0x191441;
        (*(type_7 *)var_6)();
      }
      this->running_ = this->running_ + 1;
    }
    pLVar1 = (this->lock_).lock_;
    var_35 = pLVar1->_vptr_Lock_impl;
    *(type_2 **)((int)ppcVar15 + -0x10) = pLVar1;
    var_23 = var_35[3];
    *(type_8 *)((int)ppcVar15 + -0x14) = 0x190f95;
    (*var_23)();
    var_6 = (type_4 **)var_2->_vptr_Task[1];
    if (var_6 == var_3 + -0xc8ab8) {
      var_2->_vptr_Task = (type_6 **)(var_3 + -0x307b);
      var_35 = var_2[1]._vptr_Task;
      if (var_35 != (type_6 **)0x0) {
        var_23 = *var_35;
        *(type_6 ***)((int)ppcVar15 + -0x10) = var_35;
        pcVar8 = *(type_7 **)(var_23 + 4);
        *(type_8 *)((int)ppcVar15 + -0x14) = 0x190fc9;
        (*pcVar8)();
      }
      var_36 = var_2[1].list_next_;
      if (var_36 != (type_3 *)0x0) {
        if (var_36->list_next_ != (type_3 *)0x0) {
          *(type_4 ***)((int)ppcVar15 + -8) = var_3 + -0x3d22e;
          *(type_8 *)((int)ppcVar15 + -0xc) = 100;
          *(int *)((int)ppcVar15 + -0x10) = (int)var_3 + -0x10ea43;
                    /* WARNING: Subroutine does not return */
          *(type_8 *)((int)ppcVar15 + -0x14) = 0x1915d4;
          var_37(*(char **)((int)ppcVar15 + -0x10),*(int *)((int)ppcVar15 + -0xc),
                              *(char **)((int)ppcVar15 + -8));
        }
        if ((var_36->name_)._M_dataplus._M_p != (type_9)0x0) {
          *(type_4 ***)((int)ppcVar15 + -8) = var_3 + -0x3d22e;
          *(type_8 *)((int)ppcVar15 + -0xc) = 0x65;
          *(int *)((int)ppcVar15 + -0x10) = (int)var_3 + -0x10ea43;
                    /* WARNING: Subroutine does not return */
          *(type_14 **)((int)ppcVar15 + -0x14) = &LAB_001915f2;
          var_37(*(char **)((int)ppcVar15 + -0x10),*(int *)((int)ppcVar15 + -0xc),
                              *(char **)((int)ppcVar15 + -8));
        }
        if (((var_36->name_)._M_string_length != 0) ||
           ((var_36->name_).field_2._M_allocated_capacity != 0)) {
          *(type_4 ***)((int)ppcVar15 + -8) = var_3 + -0x3d215;
          *(type_8 *)((int)ppcVar15 + -0xc) = 0x2c;
          *(int *)((int)ppcVar15 + -0x10) = (int)var_3 + -0x10ea43;
                    /* WARNING: Subroutine does not return */
          *(type_8 *)((int)ppcVar15 + -0x14) = 0x1915b6;
          var_37(*(char **)((int)ppcVar15 + -0x10),*(int *)((int)ppcVar15 + -0xc),
                              *(char **)((int)ppcVar15 + -8));
        }
        *(type_8 *)((int)ppcVar15 + -0xc) = 0x14;
        *(type_3 **)((int)ppcVar15 + -0x10) = var_36;
        *(type_8 *)((int)ppcVar15 + -0x14) = 0x191010;
        var_19(*(void **)((int)ppcVar15 + -0x10),*(type_16 *)((int)ppcVar15 + -0xc));
      }
      var_2->_vptr_Task = (type_6 **)(var_3 + -0x1717);
      var_7 = (var_2->name_)._M_dataplus._M_p;
      if ((anon_union_16_2_edb7204a_for_basic_string<var_16,_std::char_traits<var_16>,_std::var_15<var_16>var_17>var_18
           *)var_7 != &(var_2->name_).field_2) {
        *(type_9 *)((int)ppcVar15 + -0x10) = var_7;
        *(type_8 *)((int)ppcVar15 + -0x14) = 0x191034;
        var_19(*(void **)((int)ppcVar15 + -0x10));
      }
      *(type_8 *)((int)ppcVar15 + -0xc) = 0x30;
      *(type_3 **)((int)ppcVar15 + -0x10) = var_2;
      *(type_8 *)((int)ppcVar15 + -0x14) = 0x191048;
      var_19(*(void **)((int)ppcVar15 + -0x10),*(type_16 *)((int)ppcVar15 + -0xc));
      var_2 = var_33;
    }
    else {
      *(type_3 **)((int)ppcVar15 + -0x10) = var_2;
      *(type_8 *)((int)ppcVar15 + -0x14) = 0x1913d6;
      (*(type_7 *)var_6)();
      var_2 = var_33;
    }
    var_33 = var_2;
    if (var_2 == (type_3 *)0x0) {
      return true;
    }
  } while( true );
}


(translation_unit (function_definition type: (type_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: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))) right: (number_literal))))))) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))) right: (number_literal))))))) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))))) (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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 declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))))) arguments: (argument_list (identifier) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))) right: (number_literal))))))) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list)))) 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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) 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))) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) 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: (identifier) 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)) value: (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator 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)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (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: (primitive_type) declarator: (abstract_pointer_declarator 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)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (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))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (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 (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list)))) alternative: (else_clause (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: (primitive_type) 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)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) 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)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (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: (primitive_type) declarator: (abstract_pointer_declarator 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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (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)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (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))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) 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))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_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: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list)))) 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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) 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))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) 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: (identifier) 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)) value: (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) 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))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (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 (call_expression function: (identifier) 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))))) (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))))) (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (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 (call_expression function: (identifier) arguments: (argument_list))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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 declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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 (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (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)))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) 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))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (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 declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (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 declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (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 declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) 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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) 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))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (return_statement (number_literal))))) condition: (parenthesized_expression (true))))))

/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

undefined4 MASKED(undefined4 *param_1,undefined4 param_2)

{
  undefined4 *puVar1;
  undefined **ppuVar2;
  code *pcVar3;
  int *piVar4;
  int iVar5;
  size_t sVar6;
  int *piVar7;
  int iVar8;
  undefined1 *puVar9;
  int *piVar10;
  undefined1 *puVar11;
  int local_cc;
  int *local_c8;
  int local_c4;
  int local_c0;
  int local_bc;
  undefined4 local_b8;
  int local_b4;
  int local_b0;
  undefined **local_ac;
  int *local_a8;
  undefined **local_a4;
  undefined4 *local_a0;
  int **local_9c;
  int *local_98;
  undefined **local_94;
  undefined **local_90;
  int local_84;
  int local_80;
  int local_7c;
  undefined4 local_78 [5];
  int *local_64;
  int local_60;
  int local_5c [4];
  int *local_4c;
  int local_48;
  int local_44 [13];
  
  local_90 = &__DT_PLTGOT;
  local_78[0] = 0;
  (**(code **)(*(int *)*param_1 + 8))((int *)*param_1);
                    /* try { // try from 00190eb4 to 00190eb8 has its CatchHandler @ 001915f2 */
  piVar4 = (int *)FUN_001908c0(param_1,param_2);
  if (piVar4 == (int *)0x0) {
    (**(code **)(*(int *)*param_1 + 0xc))((int *)*param_1);
    return 0;
  }
  local_a0 = local_78;
  local_ac = local_90 + -0xc8b40;
  if (*(undefined ***)(*piVar4 + 0xc) != local_ac) {
                    /* try { // try from 00191525 to 00191526 has its CatchHandler @ 001915f2 */
    (*(code *)*(undefined ***)(*piVar4 + 0xc))(piVar4,local_a0);
  }
  piVar10 = &local_cc;
  param_1[5] = param_1[5] + 1;
  (**(code **)(*(int *)*param_1 + 0xc))((int *)*param_1);
  local_94 = local_90 + 0xde;
  local_a4 = local_90 + -0xc8b3c;
  local_a8 = local_44;
  local_9c = &local_4c;
  do {
    puVar1 = (undefined4 *)*local_94;
    puVar9 = (undefined1 *)piVar10;
    if ((puVar1[2] != 0) && ((*(byte *)(puVar1 + 5) & 1) != 0)) {
      local_98 = (int *)*puVar1;
      if (piVar4[3] == 0) {
        ppuVar2 = *(undefined ***)(*piVar4 + 0x14);
        if (ppuVar2 == local_90 + -0xc8a2c) {
          iVar8 = piVar4[0xb];
          local_4c = local_a8;
          iVar5 = -1;
          if (iVar8 != 0) {
            *(int *)((int)piVar10 + -0x10) = iVar8;
            *(undefined4 *)((int)piVar10 + -0x14) = 0x1910c6;
            local_b0 = iVar8;
            sVar6 = strlen(*(char **)((int)piVar10 + -0x10));
            iVar5 = sVar6 + local_b0;
            iVar8 = local_b0;
          }
          *(undefined4 *)((int)piVar10 + -4) = 0;
          *(int *)((int)piVar10 + -8) = iVar5;
          *(int *)((int)piVar10 + -0xc) = iVar8;
          *(int ***)((int)piVar10 + -0x10) = local_9c;
          *(undefined4 *)((int)piVar10 + -0x14) = 0x1910e0;
          FUN_00050e40();
        }
        else {
          *(int **)((int)piVar10 + -0xc) = piVar4;
          *(int ***)((int)piVar10 + -0x10) = local_9c;
          *(undefined4 *)((int)piVar10 + -0x14) = 0x1914bc;
          (*(code *)ppuVar2)();
          piVar10 = (int *)((int)piVar10 + -4);
        }
        piVar7 = (int *)piVar4[2];
        if (local_4c == local_a8) {
          if (local_48 != 0) {
            if (local_48 == 1) {
              *(undefined1 *)piVar7 = (undefined1)local_44[0];
              piVar7 = (int *)piVar4[2];
            }
            else {
              *(int *)((int)piVar10 + -8) = local_48;
              *(int **)((int)piVar10 + -0xc) = local_a8;
              *(int **)((int)piVar10 + -0x10) = piVar7;
              *(undefined4 *)((int)piVar10 + -0x14) = 0x19146f;
              memcpy(*(void **)((int)piVar10 + -0x10),*(void **)((int)piVar10 + -0xc),
                     *(size_t *)((int)piVar10 + -8));
              piVar7 = (int *)piVar4[2];
            }
          }
          piVar4[3] = local_48;
          *(undefined1 *)((int)piVar7 + local_48) = 0;
          iVar8 = local_44[0];
        }
        else {
          if (piVar7 == piVar4 + 4) {
            piVar4[2] = (int)local_4c;
            piVar4[3] = local_48;
            piVar4[4] = local_44[0];
          }
          else {
            piVar4[2] = (int)local_4c;
            iVar8 = piVar4[4];
            piVar4[3] = local_48;
            piVar4[4] = local_44[0];
            local_4c = piVar7;
            if (piVar7 != (int *)0x0) goto LAB_00191120;
          }
          local_4c = local_a8;
          iVar8 = local_44[0];
        }
LAB_00191120:
        local_44[0] = iVar8;
        local_48 = 0;
        *(undefined1 *)local_4c = 0;
        if (local_4c != local_a8) {
          *(int **)((int)piVar10 + -0x10) = local_4c;
          *(undefined4 *)((int)piVar10 + -0x14) = 0x191144;
          FUN_001e6db0();
        }
      }
      *(int *)((int)piVar10 + -4) = piVar4[2];
      *(undefined4 *)((int)piVar10 + -8) = param_2;
      *(int *)((int)piVar10 + -0xc) = (int)local_90 + -0xf4943;
      *(int **)((int)piVar10 + -0x10) = local_98;
      *(undefined4 *)((int)piVar10 + -0x14) = 0x191165;
      FUN_000653f0();
      puVar9 = (undefined1 *)piVar10;
    }
    *(int ***)(puVar9 + -0x10) = local_9c;
    *(undefined4 *)(puVar9 + -0x14) = 0x19117c;
    FUN_0018fff0();
    if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {
      *(int ***)(puVar9 + -0x10) = local_9c;
      *(undefined4 *)(puVar9 + -0x14) = 0x1911a8;
      thunk_FUN_00190010();
    }
    ppuVar2 = *(undefined ***)(*piVar4 + 0x10);
    if (ppuVar2 == local_a4) {
      piVar10 = (int *)piVar4[9];
      iVar8 = *piVar10;
      *(int **)(puVar9 + -8) = piVar4;
      *(undefined4 **)(puVar9 + -0xc) = param_1;
      *(int **)(puVar9 + -0x10) = piVar10;
      pcVar3 = *(code **)(iVar8 + 8);
      *(undefined4 *)(puVar9 + -0x14) = 0x1911ca;
      (*pcVar3)();
    }
    else {
      *(undefined4 **)(puVar9 + -0xc) = param_1;
      *(int **)(puVar9 + -0x10) = piVar4;
      *(undefined4 *)(puVar9 + -0x14) = 0x1913ff;
      (*(code *)ppuVar2)();
    }
    piVar10 = (int *)puVar9;
    if ((*(int *)(*local_94 + 8) != 0) && (((*local_94)[0x14] & 1) != 0)) {
      *(int ***)(puVar9 + -0xc) = local_9c;
      *(int **)(puVar9 + -0x10) = &local_84;
      *(undefined4 *)(puVar9 + -0x14) = 0x191202;
      FUN_001900d0();
      puVar11 = puVar9 + -4;
      puVar1 = (undefined4 *)*local_94;
      piVar10 = (int *)(puVar9 + -4);
      if ((puVar1[2] != 0) && (piVar10 = (int *)(puVar9 + -4), (*(byte *)(puVar1 + 5) & 1) != 0)) {
        local_b8 = *puVar1;
        local_bc = local_7c / 1000;
        local_98 = (int *)((local_7c % 1000) * 1000);
        local_c0 = local_80 / 1000;
        local_b0 = (local_80 % 1000) * 1000;
        local_c4 = local_84 / 1000;
        local_b4 = (local_84 % 1000) * 1000;
        if (piVar4[3] == 0) {
          ppuVar2 = *(undefined ***)(*piVar4 + 0x14);
          if (ppuVar2 == local_90 + -0xc8a2c) {
            iVar8 = piVar4[0xb];
            local_c8 = local_5c;
            iVar5 = -1;
            local_64 = local_c8;
            if (iVar8 != 0) {
              *(int *)(puVar9 + -0x14) = iVar8;
              *(undefined4 *)(puVar9 + -0x18) = 0x1912ff;
              local_cc = iVar8;
              sVar6 = strlen(*(char **)(puVar9 + -0x14));
              iVar5 = sVar6 + local_cc;
              iVar8 = local_cc;
            }
            puVar11 = puVar9 + -4;
            *(undefined4 *)(puVar9 + -8) = 0;
            *(int *)(puVar9 + -0xc) = iVar5;
            *(int *)(puVar9 + -0x10) = iVar8;
            *(int ***)(puVar9 + -0x14) = &local_64;
            *(undefined4 *)(puVar9 + -0x18) = 0x191317;
            FUN_00050e40();
          }
          else {
            *(int **)(puVar9 + -0x10) = piVar4;
            *(int ***)(puVar9 + -0x14) = &local_64;
            *(undefined4 *)(puVar9 + -0x18) = 0x191579;
            (*(code *)ppuVar2)();
            local_c8 = local_5c;
            puVar11 = puVar9 + -8;
          }
          piVar10 = (int *)piVar4[2];
          if (local_64 == local_c8) {
            if (local_60 != 0) {
              if (local_60 == 1) {
                *(undefined1 *)piVar10 = (undefined1)local_5c[0];
                piVar10 = (int *)piVar4[2];
              }
              else {
                *(int *)(puVar11 + -8) = local_60;
                *(int **)(puVar11 + -0xc) = local_c8;
                *(int **)(puVar11 + -0x10) = piVar10;
                *(undefined4 *)(puVar11 + -0x14) = 0x19154f;
                memcpy(*(void **)(puVar11 + -0x10),*(void **)(puVar11 + -0xc),
                       *(size_t *)(puVar11 + -8));
                piVar10 = (int *)piVar4[2];
              }
            }
            piVar4[3] = local_60;
            *(undefined1 *)((int)piVar10 + local_60) = 0;
            piVar10 = local_64;
            iVar8 = local_5c[0];
          }
          else {
            if (piVar10 == piVar4 + 4) {
              piVar4[2] = (int)local_64;
              piVar4[3] = local_60;
              piVar4[4] = local_5c[0];
            }
            else {
              piVar4[2] = (int)local_64;
              iVar8 = piVar4[4];
              piVar4[3] = local_60;
              piVar4[4] = local_5c[0];
              local_64 = piVar10;
              if (piVar10 != (int *)0x0) goto LAB_00191357;
            }
            local_64 = local_c8;
            local_c8 = local_5c;
            piVar10 = local_c8;
            iVar8 = local_5c[0];
          }
LAB_00191357:
          local_5c[0] = iVar8;
          local_60 = 0;
          *(undefined1 *)piVar10 = 0;
          if (local_64 != local_c8) {
            *(int **)(puVar11 + -0x10) = local_64;
            *(undefined4 *)(puVar11 + -0x14) = 0x19137b;
            FUN_001e6db0();
          }
        }
        *(int **)(puVar11 + -0xc) = local_98;
        *(int *)(puVar11 + -0x10) = local_bc;
        *(int *)(puVar11 + -0x14) = local_b0;
        *(int *)(puVar11 + -0x18) = local_c0;
        *(int *)(puVar11 + -0x1c) = local_b4;
        *(int *)(puVar11 + -0x20) = local_c4;
        *(int *)(puVar11 + -0x24) = piVar4[2];
        *(undefined4 *)(puVar11 + -0x28) = param_2;
        *(undefined ***)(puVar11 + -0x2c) = local_90 + -0x3d24b;
        *(undefined4 *)(puVar11 + -0x30) = local_b8;
        *(undefined4 *)(puVar11 + -0x34) = 0x1913c3;
        FUN_000653f0();
        piVar10 = (int *)puVar11;
      }
    }
    iVar8 = *(int *)*param_1;
    *(int **)((int)piVar10 + -0x10) = (int *)*param_1;
    pcVar3 = *(code **)(iVar8 + 8);
    *(undefined4 *)((int)piVar10 + -0x14) = 0x190f43;
    (*pcVar3)();
    param_1[5] = param_1[5] + -1;
    *(undefined4 **)((int)piVar10 + -8) = local_a0;
    *(int **)((int)piVar10 + -0xc) = piVar4;
    *(undefined4 **)((int)piVar10 + -0x10) = param_1;
                    /* try { // try from 00190f52 to 00190f56 has its CatchHandler @ 001915f9 */
    *(undefined4 *)((int)piVar10 + -0x14) = 0x190f57;
    local_98 = (int *)FUN_00190b90();
    if (local_98 == (int *)0x0) {
      *(undefined4 **)((int)piVar10 + -0x10) = param_1;
                    /* try { // try from 00191414 to 00191440 has its CatchHandler @ 001915f9 */
      *(undefined4 *)((int)piVar10 + -0x14) = 0x191419;
      local_98 = (int *)FUN_00190880();
      if (local_98 != (int *)0x0) goto LAB_00190f68;
    }
    else {
LAB_00190f68:
      local_78[0] = 0;
      ppuVar2 = *(undefined ***)(*local_98 + 0xc);
      if (ppuVar2 != local_ac) {
        *(undefined4 **)((int)piVar10 + -0xc) = local_a0;
        *(int **)((int)piVar10 + -0x10) = local_98;
        *(undefined4 *)((int)piVar10 + -0x14) = 0x191441;
        (*(code *)ppuVar2)();
      }
      param_1[5] = param_1[5] + 1;
    }
    iVar8 = *(int *)*param_1;
    *(int **)((int)piVar10 + -0x10) = (int *)*param_1;
    pcVar3 = *(code **)(iVar8 + 0xc);
    *(undefined4 *)((int)piVar10 + -0x14) = 0x190f95;
    (*pcVar3)();
    ppuVar2 = *(undefined ***)(*piVar4 + 4);
    if (ppuVar2 == local_90 + -0xc8ab8) {
      *piVar4 = (int)(local_90 + -0x307b);
      piVar7 = (int *)piVar4[9];
      if (piVar7 != (int *)0x0) {
        iVar8 = *piVar7;
        *(int **)((int)piVar10 + -0x10) = piVar7;
        pcVar3 = *(code **)(iVar8 + 4);
        *(undefined4 *)((int)piVar10 + -0x14) = 0x190fc9;
        (*pcVar3)();
      }
      iVar8 = piVar4[10];
      if (iVar8 != 0) {
        if (*(int *)(iVar8 + 4) != 0) {
          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;
          *(undefined4 *)((int)piVar10 + -0xc) = 100;
          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;
                    /* WARNING: Subroutine does not return */
          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915d4;
          FUN_00069d00();
        }
        if (*(int *)(iVar8 + 8) != 0) {
          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d22e;
          *(undefined4 *)((int)piVar10 + -0xc) = 0x65;
          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;
                    /* WARNING: Subroutine does not return */
          *(undefined1 **)((int)piVar10 + -0x14) = &LAB_001915f2;
          FUN_00069d00();
        }
        if ((*(int *)(iVar8 + 0xc) != 0) || (*(int *)(iVar8 + 0x10) != 0)) {
          *(undefined ***)((int)piVar10 + -8) = local_90 + -0x3d215;
          *(undefined4 *)((int)piVar10 + -0xc) = 0x2c;
          *(int *)((int)piVar10 + -0x10) = (int)local_90 + -0x10ea43;
                    /* WARNING: Subroutine does not return */
          *(undefined4 *)((int)piVar10 + -0x14) = 0x1915b6;
          FUN_00069d00();
        }
        *(undefined4 *)((int)piVar10 + -0xc) = 0x14;
        *(int *)((int)piVar10 + -0x10) = iVar8;
        *(undefined4 *)((int)piVar10 + -0x14) = 0x191010;
        FUN_001e6d90();
      }
      *piVar4 = (int)(local_90 + -0x1717);
      if ((int *)piVar4[2] != piVar4 + 4) {
        *(int **)((int)piVar10 + -0x10) = (int *)piVar4[2];
        *(undefined4 *)((int)piVar10 + -0x14) = 0x191034;
        FUN_001e6db0();
      }
      *(undefined4 *)((int)piVar10 + -0xc) = 0x30;
      *(int **)((int)piVar10 + -0x10) = piVar4;
      *(undefined4 *)((int)piVar10 + -0x14) = 0x191048;
      FUN_001e6d90();
      piVar4 = local_98;
    }
    else {
      *(int **)((int)piVar10 + -0x10) = piVar4;
      *(undefined4 *)((int)piVar10 + -0x14) = 0x1913d6;
      (*(code *)ppuVar2)();
      piVar4 = local_98;
    }
    local_98 = piVar4;
    if (piVar4 == (int *)0x0) {
      return 1;
    }
  } while( true );
}

